【发布时间】:2020-02-23 17:48:42
【问题描述】:
我很难将一个添加到另一个数据框的底部。
我有一个数据框(我们称之为 DF1),它有 1 行和 5 列。我有另一个数据框(我们称之为 DF2),它有 50 行和 5 列。我将其设置为使两个数据框之间的列匹配-它们具有相同的列。其实DF1是基于DF2的计算。
这就是 DF1 的样子:
row.names pt1 pt2 pt3 pt4
calc 0.93 0.45 0.28 0.54
这就是 DF2 的样子:
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 应该是实际数据点的数量(未丢失的值的数量)除以可能值的总数。
所以.. 我想将 DF1 添加到 DF2 的底部,如下所示:
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
当我尝试使用时
both.dfs <- rbind(DF1, DF2) # DF1 is first here
DF1 是 DF2 中的第一行。我需要它是最后一行。
当我尝试使用时
both.dfs <- rbind(DF2, DF1) # DF2 is first here
我得到一个错误:
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
我尝试过合并,我尝试向 DF2 添加一个新行,然后插入 DF2 的值……似乎没有任何效果!我迫切需要一些帮助!任何人?
【问题讨论】:
-
简短的回答是你不能(或者至少你不应该)。数据帧的列必须都是原子向量(即相同的数据类型),并且您正在尝试混合数字(DF1)和字符/因子(DF2)。
-
如果 DF2 的列是字符而不是因子,它将“起作用”。但是您可能仍然应该找到一种不同的方式来链接这些数据集。