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

R—处理数据帧列表的惯用方法,r,idioms,R,Idioms,我有30次数据运行,每次都存储在一个单独的CSV文件runi.CSV中,I=0:29 假设我想把它们都收集到一个列表中。我知道的最好的方法是 runs = list() for (i in 1:30) { runs[[i]] = read.csv(paste("run", i-1, ".csv")); } 现在让我们进一步说,列表中存储的每个数据帧都有相同的列布局,我对由“x”标识的列和由“y”标识的列感兴趣 绘制所有30次(x,y)对的最简单方法是什么?以下是我目前的做法(我觉得一定有更好的

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

假设我想把它们都收集到一个列表中。我知道的最好的方法是

runs = list()
for (i in 1:30) { runs[[i]] = read.csv(paste("run", i-1, ".csv")); }
现在让我们进一步说,列表中存储的每个数据帧都有相同的列布局,我对由“x”标识的列和由“y”标识的列感兴趣

绘制所有30次(x,y)对的最简单方法是什么?以下是我目前的做法(我觉得一定有更好的办法):

当我试图对数据进行转换时,这会变得更加痛苦;我不知道如何将函数应用于列表中存储的每个数据帧的特定列


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

在处理此类列表时,最好使用l*ply函数(来自plyr)或LAPPY

进行导入的最简单方法可能如下所示:

library(plyr)
runs <- llply(paste("run",1:30,".csv",sep=""), read.csv)
库(plyr)

运行您最好使用所有数据创建一个数据帧。例如,在导入时添加运行编号(
runs[[i]]=data.frame(读取.csv(粘贴(“run”,i-1,.csv”)),运行=i)
),然后执行
所有数据运行
library(plyr)
runs <- llply(paste("run",1:30,".csv",sep=""), read.csv)
# some dummy data
runs <- list(a=data.frame(x=1:5, y=rnorm(5)), b=data.frame(x=1:5, y=rnorm(5)))
par(mfrow=c((length(runs)/2),2));
l_ply(1:length(runs), function(i) { plot(runs[[i]]$x, runs[[i]]$y) })
library(ggplot2)
qplot(x, y, colour=Run, data=alldata, geom="point")