提示函数内部所有对象的简单方法,无需显式编写所有对象

时间:2017-03-31 17:04:57

标签: r dataframe rbind

假设我已经创建了名称为v1,v2,v3,v4,v5,...,v99,v100的100个数据帧。 所有这些数据框都具有相同的大小,我的意思是它们都具有相同的列集。 我现在想要使用write.csv中的rbind导出附加在单个csv文件中的所有这些数据帧。 所以我正在使用函数

write.csv(rbind(v1, v2, v3,v4,v5), "myfilename.csv")

上面的命令可以完成这项工作,但是你可以看到只附加了5个数据帧。我想附加所有数据帧,即从v1到v100(按顺序),但单独写下它们的所有名称都是一项痛苦的任务。是否有一种简单的方法可以在不写出所有名称的情况下提及所有对象名称。感谢期待。

1 个答案:

答案 0 :(得分:1)

如果必须有单独的对象,请获取名称并按编号排序。然后将它们一起复制到列表Lrbind

nms <- ls(pattern = "^v\\d+$")
nms <- nms[order(as.numeric(sub("v", "", nms)))]
L <- mget(nms)
DF <- do.call("rbind", L)

然而,正如@MrFlick提到的那样,首先在列表L中创建它们会更好,在这种情况下,只需要最后一个语句。