Tengo un marco de datos llamado "newprice" (ver 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 ves.
Cuando pego mi programa en la consola de R esta es la salida 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(“"
He intentado igualmente utilizar la función c()
-por ejemplo c("premium")
, en lugar de la función paste()
, pero sin éxito.
¿Podría alguien ayudarme a resolver esto?
Utilice la función 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
También puedes hacer un subconjunto:
R> colnames(X)[2] <- "superduper"
El error es causado por las "smart-quotes" (o como sea que se llamen'). La lección aquí es, "no' escriba su código en un 'editor' que convierte las comillas en smart-quotes'.
names(newprice)[1]<-paste(“premium”) # error
names(newprice)[1]<-paste("premium") # works
Además, no necesitas paste("premium")
(la llamada a paste
es redundante) y es una buena idea poner espacios alrededor de <-
para evitar confusiones (por ejemplo, x <- -10; if(x<-3) "hi" else "bye"; x
).