我有许多重复命名的数据框:
df.1 <- data.frame("x"=c(1,2), "y"=2)
df.2 <- data.frame("x"=c(2,4), "y"=4)
df.3 <- data.frame("x"=2, "y"=c(4,5))
所有数据框具有相同的行数和列数。
我想绑定它们,添加一个带有数据框 ID 的列。 id 是源数据框的名称。
我知道我可以手动执行此操作:
rbind(data.frame(id = "df.1", df.1),
data.frame(id = "df.2", df.2),
data.frame(id = "df.3", df.3))
但它们的数量很多,而且未来它们的数量还会发生变化。
我尝试编写 for 循环,但它们不起作用。我想这是因为我将它们基于包含数据帧名称的字符串列表,而不是数据帧本身的列表。
df_names <- ls(pattern = "df.\\d+")
for (i in df_names) {
i$id <- i
i
}
...但我还没有找到任何自动方法来创建具有可重复名称的数据框列表。即使我这样做了,我也不确定上面的 for 循环是否有效:)