J'ai un cadre de données appelé "newprice" ; (voir ci-dessous) et je veux changer les noms des colonnes dans mon programme dans R.
> newprice
Chang. Chang. Chang.
1 100 36 136
2 120 -33 87
3 150 14 164
En fait, c'est ce que je fais :
names(newprice)[1]<-paste("premium")
names(newprice)[2]<-paste("change")
names(newprice)[3]<-paste("newprice")
Je n'ai pas mis cela dans une boucle car je veux que chaque nom de colonne soit différent comme vous le voyez.
Lorsque je colle mon programme dans la console R, voici la sortie qu'il me donne :
> 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(“"
J'ai également essayé d'utiliser la fonction c()
, par exemple c("premium" ;)
, au lieu de la fonction paste()
, mais sans succès.
Quelqu'un pourrait-il m'aider à résoudre ce problème ?
Utilisez la fonction 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
Vous pouvez aussi faire des sous-ensembles :
R> colnames(X)[2] <- "superduper"
L'erreur est causée par les "smart-quotes" (ou quel que soit leur nom). La leçon à tirer est la suivante : "N'écrivez pas votre code dans un 'éditeur'qui convertit les guillemets en smart-quotes" ;.
names(newprice)[1]<-paste(“premium”) # error
names(newprice)[1]<-paste("premium") # works
De plus, vous n'avez pas besoin de paste("premium" ;)
(l'appel à paste
est redondant) et c'est une bonne idée de mettre des espaces autour de <-
pour éviter toute confusion (par exemple x <- -10 ; if(x<-3) "hi" ; else "bye" ; x
).