添加一个数据帧,以作为R另一个data.frame的端部(Adding a one datafram

2019-06-24 00:39发布

我有难度增加一个到另一个数据帧的底部。

我有一个具有1行5列一个数据帧(姑且称之为DF1)。 我还有一个数据帧(可以称之为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..nothing似乎工作! 我在一些急需帮助! 任何人?

Answer 1:

下面是你应该做的:

DFtranspose <- cbind(t(DF1[2, ]), t(DF2))
rownames(DFtranspose) <- DF1[1, ]


Answer 2:

我同意的意见,认为这可能是一个坏主意,但这里是你如何能做到这一点。

首先,与基于列表的data.frame不会以这种方式也很好地结合。 如果你想rbind的数据,你会更好把它们转换成一个矩阵。 请注意,你将不得不选择为您的数据帧的每一行单一类型的,所以你不能让你的号码为数字,如果他们势必字符。 如果你愿意把一切都为一个字符,给这个一展身手:

> df1 <- data.frame(pt1="a", pt2="b", row.names=1)
> rownames(df1) <- "e"
> df2 <- data.frame(letters[1:4], pt1=1:4, pt2=2:5, row.names=1)
> rbind(as.matrix(df2), as.matrix(df1))
  pt1 pt2
a "1" "2"
b "2" "3"
c "3" "4"
d "4" "5"
e "a" "b"


文章来源: Adding a one dataframe to the the end of another data.frame in R
标签: r dataframe rows