J'ai un cadre de données appelé "newprice" (voir ci-dessous) et je veux changer les noms des colonnes dans mon programme en R.
> newprice
Chang. Chang. Chang.
1 100 36 136
2 120 -33 87
3 150 14 164
En fait, voici 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.
Quand 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 en vain.
Est-ce que quelqu'un pourrait m'aider à résoudre ce problème?
0 votes
Si la réponse de Dirk fonctionne, alors le problème était que vous travailliez avec une matrice plutôt qu'avec un dataframe. Vous pouvez vérifier cela avec soit
is.matrix
oustr
.5 votes
Voir cette réponse sur dplyr::rename stackoverflow.com/a/26146202/1831980
16 votes
colnames(newprice)<- c("prime","modification","nouveauprix")
2 votes
Votre erreur n'a rien à voir avec la qualité de votre code. Vous utilisez simplement le mauvais symbole. Ce “ n'est pas reconnu par R, utilisez " à la place. Je sais qu'ils peuvent sembler identiques. Regardez de plus près : “ ". C'est tout.
0 votes
Plusieurs réponses ci-dessous utilisent une position codée en dur, par exemple,
2
danscolnames(X)[2]
. Cela n'est généralement pas une bonne pratique car cela est sensible aux changements de données. Et si vous ajoutez une autre colonne avant cette colonne spécifique à vos données ? Au lieu de cela, essayez quelque chose comme la réponse fournie par Hagos.