Jeg har en dataramme kaldet "newprice" (se nedenfor), og jeg ønsker at ændre kolonnenavnene i mit program i R.
> newprice
Chang. Chang. Chang.
1 100 36 136
2 120 -33 87
3 150 14 164
Det er faktisk det, jeg gør:
names(newprice)[1]<-paste("premium")
names(newprice)[2]<-paste("change")
names(newprice)[3]<-paste("newprice")
Jeg har ikke sat dette i en løkke, fordi jeg ønsker at hvert kolonnenavn skal være anderledes som du kan se.
Når jeg indsætter mit program i R-konsollen er dette det output det giver mig:
> 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 ligeledes prøvet at bruge funktionen c()
- for eksempel c("premium")
, i stedet for funktionen paste()
, men uden held.
Er der nogen der kan hjælpe mig med at finde ud af dette?
Brug funktionen 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å lave en undergruppe:
R> colnames(X)[2] <- "superduper"
Fejlen er forårsaget af "smart-quotes" (eller hvad de nu hedder). Læren her er, "lad være med at skrive din kode i en 'editor' der konverterer citater til smart-quotes".
names(newprice)[1]<-paste(“premium”) # error
names(newprice)[1]<-paste("premium") # works
Du behøver heller ikke paste("premium")
(kaldet til paste
er overflødigt) og det er en god ide at sætte mellemrum omkring <-
for at undgå forvirring (f.eks. x <- -10; if(x<-3) "hi" else "bye"; x
).