【发布时间】:2020-10-18 08:17:03
【问题描述】:
如果我有一个列表 x 包含 3 个元素,即 data.frames a、b 和 c,我该如何运行函数 FUNC,它需要像 FUN(x$a, x$b, x$c) 这样的三个数据帧?
示例数据
my.list <- list(data.frame(y1 = c(1, 2)),
data.frame(y2 = c(3, 2, 1)),
data.frame(y3 = c(7, 8, 4,5,6)))
names(my.list) <- c("a", "b", "c")
我遇到的主要问题是my.list 有时可能有元素a、b 和c,有时还有e 和/或f,所以我想要一种方法来调用这些元素不依赖于元素的名称或元素的数量。
我一直在努力
do.call(cbind, my.list)
但我收到错误消息
data.frame(..., check.names = FALSE) 中的错误: 参数意味着不同的行数:2、3、5
【问题讨论】:
-
那么你想
cbind每个列表元素的第一列吗? -
为了这个例子,是的。
-
像这样:
do.call(cbind, my.list)? -
好的,是的!感谢这个例子的出色工作。我的真实数据的问题在于,该函数 id 是一个自定义函数,它基本上通过用
NA填充间隙来对长度不等的向量执行cbind。你能解决这个问题,我会相应地更改示例吗?