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?
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
Vous devez vous connecter pour publier un commentaire.
Voici ce que vous devez faire:
OriginalL'auteur 42-
Je suis d'accord avec les commentaires, que c'est probablement une mauvaise idée, mais voici comment vous pourriez le faire.
Tout d'abord, avec la liste de base de données.cadre ne va pas à combiner aussi bien dans ce mode. Si vous voulez rbind les données, vous serez mieux de les convertir en une matrice. Notez que vous allez avoir à choisir un seul type pour chaque ligne de votre bloc de données, de sorte que vous ne pouvez pas garder vos numéros en chiffres comme si ils sont liés à des caractères. Si vous êtes prêt à tout traiter comme un personnage, donnez ce un aller:
OriginalL'auteur Jeff Allen