读取多个文件以对每个文件运行分析,并将它们存储在r studio中的一个文件中
我有6个文件夹,每个文件夹都包含2200个CSV文件,我知道如何在一个文件中读取它们并创建一个联合数据集,但问题是我需要对每个文件应用统计函数,然后将每个文件中设置的值与文件名一起存储到另一个文件中。因为我只需要分析每个文件的第5列和第6列,并计算这些列和每个文件的标准偏差、平均值、方差、偏度和峰度。 然后,我的数据集将是第一列中所有文件的名称,Std dev作为第二列,mean作为第三列,依此类推读取多个文件以对每个文件运行分析,并将它们存储在r studio中的一个文件中,r,loops,csv,for-loop,dataframe,R,Loops,Csv,For Loop,Dataframe,我有6个文件夹,每个文件夹都包含2200个CSV文件,我知道如何在一个文件中读取它们并创建一个联合数据集,但问题是我需要对每个文件应用统计函数,然后将每个文件中设置的值与文件名一起存储到另一个文件中。因为我只需要分析每个文件的第5列和第6列,并计算这些列和每个文件的标准偏差、平均值、方差、偏度和峰度。 然后,我的数据集将是第一列中所有文件的名称,Std dev作为第二列,mean作为第三列,依此类推 我无法通过循环分析找到第5列和第6列single-2文件的统计参数。如果有人能帮我解决这一问题,
我无法通过循环分析找到第5列和第6列single-2文件的统计参数。如果有人能帮我解决这一问题,那将对我非常有帮助。在这里展开我的评论是一个最小的可重复的例子 当您读取CSV文件时,应该会得到data.frames的列表。由于您不提供示例数据或可复制的最小示例,因此让我们生成一个包含2个data.frames的列表作为示例数据
set.seed(2017)
lst <- replicate(2, data.frame(x1 = rnorm(10), x2 = rnorm(10), x3 = rnorm(10)), simplify = F)
现在,我们使用lappy循环遍历data.frames列表,并将calc.sum.stats应用于每个data.frames的第2列和第3列。我们将输出存储在一个新列表中;或者,您可以将输出写入新文件
lst.out <- lapply(lst, function(x) sapply(x[, 2:3], calc.sum.stats))
lst.out
#[[1]]
# x2 x3
#Std.Dev 1.096376114 0.99908334
#Mean 0.001866057 -0.01558136
#Var 1.202040583 0.99816751
#Skew 0.195200696 0.25926229
#Kur 1.545595827 2.75636328
#
#[[2]]
# x2 x3
#Std.Dev 0.89417725 1.19341132
#Mean 0.11378986 -0.01771822
#Var 0.79955296 1.42423058
#Skew -0.05177617 0.08220936
#Kur 1.45491801 1.72107415
那么,实际的问题是什么?只需使用类似lapplylist_的文件,functionx{df
lst.out <- lapply(lst, function(x) sapply(x[, 2:3], calc.sum.stats))
lst.out
#[[1]]
# x2 x3
#Std.Dev 1.096376114 0.99908334
#Mean 0.001866057 -0.01558136
#Var 1.202040583 0.99816751
#Skew 0.195200696 0.25926229
#Kur 1.545595827 2.75636328
#
#[[2]]
# x2 x3
#Std.Dev 0.89417725 1.19341132
#Mean 0.11378986 -0.01771822
#Var 0.79955296 1.42423058
#Skew -0.05177617 0.08220936
#Kur 1.45491801 1.72107415