R - 将矢量/ matix作为行添加到另一个数据帧

时间:2018-02-05 20:43:31

标签: r dataframe error-handling rbind

我以为我很久以前就已经掌握了这项技能,但在这种情况下我无能为力,我只收到错误信息。

这是同样的问题,但它对我不起作用! {{3}}

我有这个数据框:

structure(list(AT2VI12 = 28, DENI011 = 27, GB0033R = 0, SE0004A = 2, 
SE0013R = 4), .Names = c("AT2VI12", "DENI011", "GB0033R", 
"SE0004A", "SE0013R"), row.names = c(NA, -1L), class = "data.frame")

>df
    AT2VI12 DENI011 GB0033R SE0004A SE0013R
1      28      27       0       2       4

现在我想添加这个微小的第二个数据帧的第二列。

structure(list(x = c("AT2VI12", "DENI011", "GB0033R", "SE0004A", 
"SE0013R"), n = c(17L, 35L, 2L, 14L, 5L)), class = c("tbl_df", 
"tbl", "data.frame"), .Names = c("x", "n"), row.names = c(NA, 
-5L))

>df2
       x     n
    <chr> <int>
1 AT2VI12    17
2 DENI011    35
3 GB0033R     2
4 SE0004A    14
5 SE0013R     5

我这样做了:

df <- rbind(df, df2[,2])  # Error message: Not the same number of columns

然后我尝试了这个(想要稍后删除附加行)

df2 = t(df2)
df <- rbind(df, df2[2,]) # Error in match.names(clabs, names(xi)) 

而且:

rbind(df, as.data.frame(t(df2)))

我不知道什么是错的。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

这是一个tibble,无论您使用哪个索引,它都会返回tibble,因此您需要将其取消列表以获取向量:

 rbind(df,unlist(df2[2]))
  AT2VI12 DENI011 GB0033R SE0004A SE0013R
1      28      27       0       2       4
2      17      35       2      14       5