【发布时间】:2018-04-15 19:42:58
【问题描述】:
我需要为我拥有的 50 个 csv 文件中的每一个取第三列,并在 R 中获取它们的差异。
files <- list.files(path="path\\to\\csv", pattern="*.csv", full.names=T, recursive=FALSE)
lapply(files, function(x) {
t <- read.csv(x, header=F) # load file
# apply function
out <- var(t[3])
out
# write to file
#write.csv(out, "path\\to\\dir\\variances.csv", sep="\t", quote=F, row.names=F, col.names=T)
})
这是我目前所拥有的,我需要一些帮助来了解如何使用每个 csv 文件从第 2 行到最后一行来获得差异和只有第 3 列。
另外,如果我可以编写一个数据框,其中每个文件的名称没有“.csv”作为列名,它们的差异作为 csv 文件中的值。基本上它将是一个 1x50 的数据框
感谢您的帮助
【问题讨论】:
-
使用
var(t[-1,3])计算没有第一行的第三列的方差。使用sub('.csv', '', x)从文件名中删除“.csv”。 -
谢谢,但如何在每次迭代时附加一列?
-
尝试将
as.data.frame应用于lapply的输出 -
@YunTaeHwang:请参阅此答案以获取提示stackoverflow.com/questions/3397885/…