R - 处理数据帧列表的惯用方法

I82*_*uch 3 idioms r

我有30个数据运行,每个数据存储在一个单独的CSV文件中,runi.csv,i = 0:29.

假设我想将它们全部收集到一个列表中.我知道怎么做的最佳方式是

runs = list()
for (i in 1:30) { runs[[i]] = read.csv(paste("run", i-1, ".csv")); }
Run Code Online (Sandbox Code Playgroud)

现在让我们进一步说,存储在列表中的每个数据帧具有相同的列布局,并且我对由"x"标识的列和由"y"标识的列感兴趣.

绘制所有30次运行(x,y)对的最简单方法是什么?这就是我目前的做法(我觉得必须有更好的方法):

xList = list()
yList = list()
for (i in 1:30) { xList[[i]] = runs[[i]]$x; yList[[i]] = runs[[i]]$y; }
matplot(x=as.data.frame(xList), y=as.data.frame(yList))
Run Code Online (Sandbox Code Playgroud)

当我尝试对数据进行转换时,这会变得更加痛苦; 我无法弄清楚如何将函数应用于存储在列表中的每个数据帧的特定列.

这里的任何帮助都会非常有帮助.

Ani*_*iko 5

使用所有数据创建一个数据框可能会好得多.例如,在导入(runs[[i]] = data.frame(read.csv(paste("run", i-1, ".csv")), Run=i))时添加运行编号,然后执行alldata <- do.call(rbind, runs).

现在你可以使用latticeggplot2制作情节了.例如,通过运行获取使用不同颜色的所有运行的散点图:

library(ggplot2)
qplot(x, y, colour=Run, data=alldata, geom="point")
Run Code Online (Sandbox Code Playgroud)