假设我在一个名为“my data”的文件夹中有一组CSV文件,这是我工作目录中的一个文件夹。 CSV文件是矩阵,看起来像:
> a
[,1] [,2] [,3] [,4]
[1,] 3 3 3 3
[2,] 3 3 3 3
[3,] 3 3 3 3
[4,] 3 3 3 3
> b
[,1] [,2] [,3] [,4]
[1,] 1 1 1 1
[2,] 2 2 2 2
[3,] 1 1 1 1
[4,] 2 2 2 2
> c
[,1] [,2] [,3] [,4]
[1,] 3 3 3 3
[2,] 9 9 9 9
[3,] 3 3 3 3
[4,] 9 9 9 9
假设我的工作目录中有另一个名为“my results”的文件夹。在其中我想创建另一个CSV文件(称为“my_results”),该文件具有对“我的数据”中的CSV文件执行分析的结果。例如,如果我计算a,b和c的平均值和标准差,“my_results”将如下所示:
> my_results
mean sd
a 3.0 0.00
b 1.5 0.52
c 6.0 3.10
新CSV的每一行的想法都对应于“我的数据”中的一个CSV,而新CSV的列将对应于特定的分析运行。谢谢。
答案 0 :(得分:1)
lapply是你的朋友:
my_data = lapply(list.files("my data", "*.csv"), read.csv)
my_result = lapply(my_data, your_fun())
write.csv(dplyr::bind_rows(my_result), "my data/my results.csv")
使用包dplyr
获得方便的bind_rows函数