我有6个文件夹,每个文件夹包含2200个CSV文件,我知道如何将它们全部读取到一个文件中并创建联合数据集,但是问题是我需要在每个文件上应用统计函数,然后存储这些值(从每个文件(具有该文件名的文件)移至另一个文件。因为我只需要分析每个文件的第5列和第6列,并从每个文件计算这些列的标准dev,均值,方差,偏度和峰度。 那么我的数据集将是第一列中所有文件的名称的文件,Std dev为第二列,平均值为第三列,依此类推。
我无法通过循环分析(查找第5列和第6列的统计参数)single-2文件。如果有人可以帮助我,这对我非常有帮助。
答案 0 :(得分:1)
在上面对我的评论进行扩展是一个最小的可重复示例。
读CSV文件时,您应该获得data.frame
列表。由于您不提供示例数据(或可复制的最小示例),因此,我们生成2个list
中的data.frame
作为示例数据。
set.seed(2017)
lst <- replicate(2, data.frame(x1 = rnorm(10), x2 = rnorm(10), x3 = rnorm(10)), simplify = F)
我们现在定义一个函数,用于计算所需的摘要统计信息。 R软件包moments
提供了计算偏度和峰度的函数。
library(moments)
calc.sum.stats <- function(x) c(
Std.Dev = sd(x),
Mean = mean(x),
Var = var(x),
Skew = skewness(x),
Kur = kurtosis(x))
我们现在使用lapply
遍历list
的{{1}},并将data.frame
应用于每个calc.sum.stats
的第2列和第3列。我们将输出存储在新的data.frame
中;或者,您可以将输出写入新文件。
list