Comment ajouter plusieurs colonnes à un data.frame en une fois?
J'ai suivantes dataframe et vecteur:
ddf = data.frame(a=rep(1,10), b=rep(2,10))
xx = c("c", "d", "e", "f")
Comment puis-je vide les colonnes qui sont nommés à des éléments de xx ?
J'ai essayé de suivre mais il ne fonctionne pas:
ddf = cbind(ddf, data.frame(xx))
Error in data.frame(..., check.names = FALSE) :
arguments imply differing number of rows: 10, 4
Suivant ne fonctionne pas:
for(i in 1:length(xx)){
ddf$(xx[i]) = ""
}
Error: unexpected '(' in:
"for(i in 1:length(xx)){
ddf$("
}
Error: unexpected '}' in "}"
source d'informationauteur rnso
Vous devez vous connecter pour publier un commentaire.
Cela vous permet d'y parvenir:
Vous ne pouvez pas utiliser directement quelque chose comme
ddf$xx
parce que ce va essayer d'attribuer à une colonne appeléexx
plutôt que d'interpréterxx
. Vous avez besoin d'utiliser[
et[<-
fonctions, en utilisant les crochets lorsque vous avez affaire à une chaîne de caractères commeddf["columnname"]
.La raison pour laquelle il sélectionne les colonnes est parce que
data.frames
sont des listes essentiellement:...avec chaque colonne correspondant à une entrée de la liste. Donc, si vous n'utilisez pas une virgule de spécifier une ligne, comme
ddf["name",]
ou une colonne commeddf[,"name"]
vous obtenez la colonne par défaut.Cela semble réussir: