Cambiar los nombres de las columnas de un marco de datos
Tengo un marco de datos llamado "nuevo precio" (ver más abajo) y quiero cambiar los nombres de las columnas en mi programa en R.
> newprice
Chang. Chang. Chang.
1 100 36 136
2 120 -33 87
3 150 14 164
De hecho esto es lo que estoy haciendo:
names(newprice)[1]<-paste("premium")
names(newprice)[2]<-paste("change")
names(newprice)[3]<-paste("newprice")
No he puesto esto en un bucle porque quiero que cada nombre de columna sea diferente como puedes ver.
Cuando pego mi programa en la consola R, este es el resultado que me da:
> 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(“"
También intenté usar la c()
función, por ejemplo c("premium")
, en lugar de la paste()
función, pero fue en vano.
¿Alguien podría ayudarme a resolver esto?
Utilice la colnames()
función:
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
También puedes subconjuntos:
R> colnames(X)[2] <- "superduper"
Yo uso esto:
colnames(dataframe)[which(names(dataframe) == "columnName")] <- "newColumnName"
El error es causado por las "comillas inteligentes" (o como se llamen). La lección aquí es: "no escriba su código en un 'editor' que convierta comillas en comillas tipográficas".
names(newprice)[1]<-paste(“premium”) # error
names(newprice)[1]<-paste("premium") # works
Además, no es necesario paste("premium")
(la llamada a paste
es redundante) y es una buena idea colocar espacios <-
para evitar confusiones (por ejemplo, x <- -10; if(x<-3) "hi" else "bye"; x
).
Intentar:
names(newprice)[1] <- "premium"