Imam podatkovni okvir z imenom "newprice" (glej spodaj) in želim spremeniti imena stolpcev v svojem programu v R.
> newprice
Chang. Chang. Chang.
1 100 36 136
2 120 -33 87
3 150 14 164
Pravzaprav delam to:
names(newprice)[1]<-paste("premium")
names(newprice)[2]<-paste("change")
names(newprice)[3]<-paste("newprice")
Tega nisem postavil v zanko, ker želim, da je ime vsakega stolpca drugačno, kot vidite.
Ko prilepim svoj program v konzolo R, dobim ta rezultat:
> names(newprice)[1]<-paste(“premium”)
Error: unexpected input in "names(newprice)[1]<-paste(“"
> names(newprice)[2]<-paste(“change”)
Error: unexpected input in "names(newprice)[2]<-paste(“"
> names(newprice)[3]<-paste(“newpremium”)
Error: unexpected input in "names(newprice)[3]<-paste(“"
Prav tako sem poskusil uporabiti funkcijo c()
- na primer c("premium")
, namesto funkcije paste()
, vendar brez uspeha.
Ali mi lahko kdo pomaga, da to ugotovim?
Uporabite funkcijo colnames()
:
R> X <- data.frame(bad=1:3, worse=rnorm(3))
R> X
bad worse
1 1 -2.440467
2 2 1.320113
3 3 -0.306639
R> colnames(X) <- c("good", "better")
R> X
good better
1 1 -2.440467
2 2 1.320113
3 3 -0.306639
Lahko tudi podskupino:
R> colnames(X)[2] <- "superduper"
Napaka je posledica "pametnih citatov" (ali kako se že imenujejo). Nauk je naslednji: "ne pišite kode v urejevalniku, ki pretvori narekovaje v pametne narekovaje".
names(newprice)[1]<-paste(“premium”) # error
names(newprice)[1]<-paste("premium") # works
Prav tako ne potrebujete paste("premium")
(klic paste
je odveč) in dobro je, da okrog <-
naredite presledke, da se izognete zmedi (npr. x <- -10; if(x<-3) "hi" else "bye"; x
).