【发布时间】:2020-02-29 01:27:22
【问题描述】:
我有 247 个按顺序命名的数据帧 (y1, y2, y3, ...., y247)。它们是由以下代码产生的:
for (i in (1:247)) {
nam <- paste("y", i, sep = "")
assign(nam, dairy[dairy$FARM==i,"YIT"])
}
我希望将它们全部绑定到:
df <- cbind(y1,y2,...,y247)
我可以在不输入所有 247 个数据帧的情况下循环执行此操作吗?
谢谢
【问题讨论】:
-
您可以将数据集存储在
X <- split(dairy$YIT, dairy$FARM)列表中,然后通过do.call(cbind, X)绑定。 -
你为什么要这样做?看起来您已经在一个数据框中拥有了所有数据?
dairy[dairy$FARM %in% 1:247, "YIT"]是你要找的吗? -
我将此解释为类似于来自 tidyverse 的
spread,即希望每列代表键的特定值(FARM 变量)的 YIT 数据。 -
您可能会发现这些线程很有用:stackoverflow.com/questions/60321045/cbind-with-loop-in-r 和 stackoverflow.com/questions/46058850/…。还有 stackoverflow.com/questions/48233811/… 使用 mapply 而不是循环。