Concaténer les lignes d'une trame de données

Je voudrais prendre un bloc de données avec des caractères et des nombres, et de les enchaîner tous les éléments de chaque ligne dans une chaîne unique, qui serait stocké en un seul élément dans un vecteur. Comme un exemple, je fais un bloc de données, de chiffres et de lettres, et puis je voudrais concaténer la première ligne via la fonction "coller", et espérons-le, retourner la valeur "A1"

df <- data.frame(letters = LETTERS[1:5], numbers = 1:5)
df

##   letters numbers
## 1       A       1
## 2       B       2
## 3       C       3
## 4       D       4
## 5       E       5

paste(df[1,], sep =".")
## [1] "1" "1"

Donc coller est la conversion de chaque élément de la ligne dans un entier qui correspond à l'index du niveau correspondant du " comme si il s'agissait d'un facteur, et il le maintient d'un vecteur de longueur deux. (Je sais que/croire que les facteurs qui sont contraints à être des personnages se comportent de cette façon, mais en tant que R n'est pas de stocker df[1,] comme un facteur à tout (testé par est.facteur(), je ne peux pas vérifier qu'il est en fait un index pour un niveau)

is.factor(df[1,])
## [1] FALSE
is.vector(df[1,])
## [1] FALSE

Donc, si ce n'est pas un vecteur, alors il est logique qu'elle se comporte bizarrement, mais je ne peux pas le forcer dans un vecteur

> is.vector(as.vector(df[1,]))
[1] FALSE

À l'aide de as.character ne semble pas aider dans mes tentatives

Quelqu'un peut expliquer ce comportement?

  • Avez-vous essayé d'ajouter le stringsAsFactors=FALSE argument à vos données.cadre de la création?
InformationsquelleAutor Sam | 2012-12-19