Minulla on datakehys nimeltä "newprice" (ks. alla) ja haluan muuttaa sarakkeiden nimiä R-ohjelmassani.
> newprice
Chang. Chang. Chang.
1 100 36 136
2 120 -33 87
3 150 14 164
Itse asiassa teen juuri näin:
names(newprice)[1]<-paste("premium")
names(newprice)[2]<-paste("change")
names(newprice)[3]<-paste("newprice")
En ole laittanut tätä silmukkaan, koska haluan jokaisen sarakkeen nimen olevan erilainen, kuten näet.
Kun liitän ohjelmani R-konsoliin, se antaa minulle tämän tulosteen:
> 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(“"
Olen yhtä lailla yrittänyt käyttää c()
-funktiota - esimerkiksi c("premium")
, paste()
-funktion sijasta, mutta tuloksetta.
Voisiko joku auttaa minua selvittämään tämän?
Käytä colnames()
-funktiota:
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
Voit myös tehdä osajoukon:
R> colnames(X)[2] <- "superduper"
Virhe johtuu "smart-quot; (tai miksi niitä kutsutaankaan). Opetus tässä on, "älä kirjoita koodia 'editorilla' joka muuntaa lainausmerkit smart-quotesiksi".
names(newprice)[1]<-paste(“premium”) # error
names(newprice)[1]<-paste("premium") # works
Et myöskään tarvitse paste("premium")
(kutsu paste
:lle on tarpeeton) ja on hyvä idea laittaa välilyönnit <-
ympärille sekaannusten välttämiseksi (esim. x <- -10; if(x<-3) "hi" else "bye"; x
).