我每月有30个数据集,我想分别对它们进行分析,每天给我一个结果值。是否可以循环数据集,对每个数据集进行操作,并在新的数据框中将30个结果值合并在一起。
更具体地说,我每天都有96个读数,例如我想知道它们的平均值,最大值和最小值。因此,使用apply我可以获得它1天然后我将不得不这样做30次,或者我可以创建一个函数并调用它30次。有没有更简单的方法来重复工作。
答案 0 :(得分:0)
这很简单。将工作目录设置为文件所在的位置。获取list.files()
的文件并存储它们。然后编写一个读入文件的函数,并返回一个包含所需信息的data.frame。然后在调用您所使用的函数的文件列表中使用sapply
,例如:
setwd("C:\some_dir")
days = list.files()
someFunction = function(day){
data = read.csv(day)
return(data.frame(Mean=mean(data),SD=sd(data)))
}
sapply(days,someFunction)