为什么函数 rbind.data.frame 在 do.call 中表现不同
why function rbind.data.frame behave different in do.call
我有一个关于 do.call 的问题,很奇怪
1.我想做什么
我正在尝试将许多数据帧绑定到一个数据帧中,所有数据帧都在列表 t3 中,您可以看到下图:
2。方法
2.1 作品
t4 <- do.call(rbind.data.frame, t3)
2.2 不工作
t4 <- rbind.data.frame(t3)
错误信息如下:
3。问题
我认为如果我删除 do.call,rbind.data.frame 会表现相同,为什么它只在我使用 do.call 时有效?提前致谢。
函数 do.call(FUN, list)
旨在接受输入函数 FUN
以及 list 输入 list
。它将函数应用于列表中的每个元素,然后聚合结果。
在你的电话中
t4 <- rbind.data.frame(t3)
您正在尝试 rbind
数据帧列表,而 rbind.data.frame
函数需要一个 单个 数据帧而不是 t3
作为输入。
如果您愿意,可以使用 rbind.data.frame
而不用 do.call
。假设您在列表 t3
中只有 5 个元素,那么以下应该有效:
t4 <- rbind.data.frame(t3[[1]], t3[[2]], t3[[3]], t3[[4]], t3[[5]])
如您所见,这很快就会变得乏味(而且不可读)。这就是使用 do.call()
.
的好处
我有一个关于 do.call 的问题,很奇怪
1.我想做什么
我正在尝试将许多数据帧绑定到一个数据帧中,所有数据帧都在列表 t3 中,您可以看到下图:
2。方法
2.1 作品
t4 <- do.call(rbind.data.frame, t3)
2.2 不工作
t4 <- rbind.data.frame(t3)
错误信息如下:
3。问题
我认为如果我删除 do.call,rbind.data.frame 会表现相同,为什么它只在我使用 do.call 时有效?提前致谢。
函数 do.call(FUN, list)
旨在接受输入函数 FUN
以及 list 输入 list
。它将函数应用于列表中的每个元素,然后聚合结果。
在你的电话中
t4 <- rbind.data.frame(t3)
您正在尝试 rbind
数据帧列表,而 rbind.data.frame
函数需要一个 单个 数据帧而不是 t3
作为输入。
如果您愿意,可以使用 rbind.data.frame
而不用 do.call
。假设您在列表 t3
中只有 5 个元素,那么以下应该有效:
t4 <- rbind.data.frame(t3[[1]], t3[[2]], t3[[3]], t3[[4]], t3[[5]])
如您所见,这很快就会变得乏味(而且不可读)。这就是使用 do.call()
.