【发布时间】:2018-03-30 09:30:25
【问题描述】:
我正在尝试遍历我的 wd 的所有子文件夹,列出它们的名称,在每个子文件夹中打开“data.csv”并从该 csv 文件中提取第二个和最后一个值。
df 看起来像这样:
Name_folder_1 2nd value Last value
Name_folder_2 2nd value Last value
Name_folder_3 2nd value Last value
现在,我设法列出了子文件夹和每个文件(感谢这个线程:read multiple text files from multiple folders),但我很难实现(我猜应该是)一个嵌套循环来读取和提取数据csv 文件。
parent.folder <- "C:/Users/Desktop/test"
setwd(parent.folder)
sub.folders1 <- list.dirs(parent.folder, recursive = FALSE)
r.scripts <- file.path(sub.folders1)
files.v <- list()
for (j in seq_along(r.scripts)) {
files.v[j] <- dir(r.scripts[j],"data$")
}
任何提示将不胜感激!
编辑:
我正在尝试下面详述的解决方案,但一定有我遗漏的东西,因为它运行平稳但没有产生任何东西。这可能是非常愚蠢的事情,我是 R 新手,学习曲线让我头晕目眩:p
lapply(files, function(f) {
dat <- fread(f) # faster
dat2 <- c(basename(dirname(f)), head(dat$time, 1), tail(dat$time, 1))
write.csv(dat2, file = "test.csv")
})
【问题讨论】:
标签: r