【发布时间】:2021-10-15 03:14:47
【问题描述】:
我有 3 个这样的数据集
**DF1**
pt1 pt2
A 1.5 2.2
**DF2**
pt1 pt2 pt3
B 40 22 23
**DF3**
pt2 pt3 pt4 pt5
C 23 43 12 65
D 12 04 13 34
IDEAL OUTPUT
pt1 pt2 pt3 pt4 pt5
A 1.5 2.2 NA NA NA
B 0 22 23 NA NA
C NA 23 43 12 65
D NA 12 04 13 34
当我尝试 bind_rows 但是我得到了这个错误
df_list <- list(DF1, DF2, DF3)
df <- dplyr::bind_rows(df_list)
Error: Argument 1 must have names
我曾尝试查找此内容,但一直陷入死胡同。为什么会出现此错误,我该如何解决?
【问题讨论】:
-
您能否打印应用于 3 个数据帧中的每一个的
dput的输出?我相信像purrr::reduce(df_list, dplyr::bind_rows)这样的东西应该可以工作 -
我无法重现您的问题,
bind_rows(df1,df2,df3)(不是您尝试过的)和bind_rows(list(df1,df2,df3))都为我工作而没有错误。要知道为什么会发生这种情况,拥有框架的“真实”明确结构将是有益的。请在每个df*上使用dput(.)并在您的问题中发布输出。谢谢! -
查看这篇文章:stackoverflow.com/questions/52505923/… 这可能是您的一个或多个 dfs 是根据未命名的列表构建的,可能是第一列大写字母。
-
我确实认为命名问题是问题所在。我有数千列,有没有办法可以发布缩写的 dput?
-
dput(dat[1:3,1:5])?