Ich habe einen Datenrahmen namens "newprice" (siehe unten) und ich möchte die Spaltennamen in meinem Programm in R ändern.
> newprice
Chang. Chang. Chang.
1 100 36 136
2 120 -33 87
3 150 14 164
Das ist es, was ich tue:
names(newprice)[1]<-paste("premium")
names(newprice)[2]<-paste("change")
names(newprice)[3]<-paste("newprice")
Ich habe dies nicht in eine Schleife gestellt, weil ich möchte, dass jeder Spaltenname anders ist, wie Sie sehen.
Wenn ich mein Programm in die R-Konsole einfüge, ist dies die Ausgabe, die ich erhalte:
> 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(“"
Ich habe auch versucht, die Funktion c()
zu verwenden - zum Beispiel c("premium")
- anstelle der Funktion paste()
, aber ohne Erfolg.
Könnte mir jemand helfen, dies herauszufinden?
Verwenden Sie die Funktion 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
Sie können auch eine Untermenge bilden:
R> colnames(X)[2] <- "superduper"
Der Fehler wird durch die "smart-quotes" (oder wie auch immer sie genannt werden) verursacht. Die Lektion hier ist, "schreiben Sie'Ihren Code nicht in einem 'Editor', der Anführungszeichen in Smart-Quotes" umwandelt.
names(newprice)[1]<-paste(“premium”) # error
names(newprice)[1]<-paste("premium") # works
Außerdem brauchen Sie paste("premium")
nicht (der Aufruf von paste
ist redundant) und es ist eine gute Idee, Leerzeichen um <-
zu setzen, um Verwirrung zu vermeiden (z.B. x <- -10; if(x<-3) "hi" else "bye"; x
).