L'ajout d'un dataframe à la fin d'une autre les données.cadre en R

Je vais avoir des difficultés pour ajouter un vers le bas d'un autre bloc de données.

J'ai un bloc de données (DF1) qui a 1 lignes et de 5 colonnes. J'ai une autre dataframe (appelons cela DF2) qui a 50 lignes et 5 colonnes. Je l'ai mis en place tels que les colonnes entre les DEUX trames de données correspondent - ils ont les mêmes colonnes. En fait, DF1 est un calcul basé sur DF2.

C'est ce que DF1 ressemble:

   row.names     pt1     pt2     pt3     pt4
   calc          0.93    0.45    0.28    0.54

C'est ce que DF2 ressemble:

   row.names     pt1     pt2     pt3     pt4
   SNP1          AA      AG      AG      AA       
   SNP2          CT      CT      TC      CC
   SNP3          GG      CG      CG     <NA>
   SNP4          AA      GG      AG      AA
   SNP5         <NA>    <NA>    <NA>    <NA>

DF1 est censé être le nombre de points de données (nombre de valeurs qui ne manque pas), divisé par le nombre total de valeurs possibles.

DONC.. je veux ajouter DF1 au fond de DF2 pour ressembler à ceci:

   row.names     pt1     pt2     pt3     pt4
   SNP1          AA      AG      AG      AA       
   SNP2          CT      CT      TC      CC
   SNP3          GG      CG      CG     <NA>
   SNP4          AA      GG      AG      AA
   SNP5         <NA>    <NA>    <NA>    <NA>
   calc          0.93    0.45    0.28    0.54

Quand j'ai essayé d'utiliser

 both.dfs <- rbind(DF1, DF2)  # DF1 is first here

DF1 est la première ligne DF2. J'en ai BESOIN pour être la DERNIÈRE ligne.

Quand j'ai essayé d'utiliser

both.dfs <- rbind(DF2, DF1)  # DF2 is first here

J'obtiens une erreur:

Warning messages:
1: In `[<-.factor`(`*tmp*`, iseq, value = 0.84) :
  invalid factor level, NAs generated
2: In `[<-.factor`(`*tmp*`, iseq, value = 0.84) :
  invalid factor level, NAs generated
3: In `[<-.factor`(`*tmp*`, iseq, value = 0.84) :
  invalid factor level, NAs generated
4: In `[<-.factor`(`*tmp*`, iseq, value = 0.74) :
  invalid factor level, NAs generated

J'ai essayé de fusion, j'ai essayé d'ajouter une nouvelle ligne à DF2 et puis substrat dans les valeurs de DF2..rien ne semble fonctionner! Je suis dans le besoin désespéré d'un peu d'aide! N'importe qui?

La réponse courte est que vous ne pouvez pas (ou, au moins, vous ne devriez pas). Les colonnes de blocs de données doivent tous être atomique vecteurs (c'est à dire le même type de données), et que vous essayez de mixage numérique (DF1) et le caractère/facteur (DF2).
Il va "travailler" si les colonnes de DF2 sont des personnages plutôt que des facteurs. Mais vous devriez probablement trouver un autre moyen de relier ces ensembles de données.

OriginalL'auteur Sheila | 2012-04-27