【发布时间】:2021-02-16 15:18:00
【问题描述】:
我正在尝试使用rbind 或类似方法在两个数据框列表之间合并同名数据框。背景是用户正在导入包含 130 种不同化合物数据的文件作为唯一的数据框,因此每个导入的数据文件中都有 130 个数据框的列表。数据文件作为列表导入,因此有一个包含数据帧列表的数据文件列表。
化合物/数据框名称每天保持不变,但导入的文件数量会根据用户偏好而变化。
我想通过复合将数据框rbind 组合在一起。这是一个可重复的示例,可以满足我的要求。
list.of.lists <- list(
df.list1 <- list(df1 = data.frame("ID" = letters[1:10],
"Data" = rnorm(10, 5, 2)),
df2 = data.frame("ID" = letters[1:10],
"Data" = rnorm(10, 5, 2))
),
df.list2 <- list(df1 = data.frame("ID" = letters[11:20],
"Data" = rnorm(10, 5, 2)),
df2 = data.frame("ID" = letters[11:20],
"Data" = rnorm(10, 10, 2))
)
)
j <- Map(rbind, list.of.lists[[1]], list.of.lists[[2]]) # Results in a list of data frames (df1, df2)
这会生成一个包含 2 个数据框的列表,每个数据框有 20 个结果,这正是我想要的,但是当应用于现实世界时,我不知道list.of.lists 中将包含多少列表。
我怀疑答案相对简单,但我有点卡住了。非常感谢您的帮助!
【问题讨论】:
-
do.call(function(...) Map(rbind, ...), list.of.lists) -
这正是我想要的!保持 dfs 的所有名称和所有内容不变。提醒我椭圆 (...) 语法在这种情况下的作用?请将此作为答案,以便我选择它。