Jeg har en dataramme som heter "newprice" (se nedenfor), og jeg vil endre kolonnenavnene i programmet mitt i R.
> newprice
Chang. Chang. Chang.
1 100 36 136
2 120 -33 87
3 150 14 164
Dette er faktisk det jeg gjør:
names(newprice)[1]<-paste("premium")
names(newprice)[2]<-paste("change")
names(newprice)[3]<-paste("newprice")
Jeg har ikke satt dette i en løkke fordi jeg vil at hvert kolonnenavn skal være forskjellig som du ser.
Når jeg limer inn programmet mitt i R-konsollen, er dette utdataene det gir meg:
> 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(“"
Jeg har også prøvd å bruke c()
-funksjonen - for eksempel c("premium")
, i stedet for paste()
-funksjonen, men til ingen nytte.
Kan noen hjelpe meg med å finne ut av dette?
Bruk funksjonen 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
Du kan også lage undergrupper:
R> colnames(X)[2] <- "superduper"
Feilen er forårsaket av "smart-quotes" (eller hva de nå heter). Lærdommen her er at du ikke må skrive koden din i en "editor" som konverterer anførselstegn til smart-quotes.
names(newprice)[1]<-paste(“premium”) # error
names(newprice)[1]<-paste("premium") # works
Du trenger heller ikke paste("premium")
(oppfordringen til paste
er overflødig), og det er en god idé å sette mellomrom rundt <-
for å unngå forvirring (f.eks. x <- -10; if(x<-3) "hei" ellers "farvel"; x
).