将 gather 函数应用于多个 csv 文件,将每个输入转换为在 R 中具有相应名称的输出文件
Apply gather function to multiple csv files, converting each input to an output file with a corresponding name in R
我使用 "list.files" 函数将大量 csv 文件制作成列表:
list.files("C:/Users/gyero/Documents/daphnia/SUMMARY_CHIMP")
我想对每个文件使用 gather() 函数,然后使用 sink() 为每个 csv 文件生成单独的输出。我需要一些方法来识别哪个输出文件对应于哪个输入文件。
为了遍历文件,我使用了 lapply()
lapply(list.files[1:33], function{gather(WELL,MEASURE,A1:D6)})
我不确定如何获得相应的输出文件名 - 所以我尝试在 lapply 函数前面加上以下代码,这样至少输出文件会有一个唯一的名称并且不会被覆盖:
sink('DATA.CSV')
paste0(Sys.time(),'DATA.CSV')
但是,我对此很陌生,并且在网上搜索了我仍然无法实现我的目标(以上方法无效)。我将非常感谢任何能抽出时间帮助绝望的菜鸟的人。
你可以试试:
file_names <- list.files("C:/Users/gyero/Documents/daphnia/SUMMARY_CHIMP",
full.names = TRUE)
lapply(file_names, function(x) {
df <- read.csv(x)
write.csv(tidyr::gather(df,WELL,MEASURE,A1:D6),
paste0(sub("\.csv", "", basename(x)), "_output.csv"))
})
如果文件夹中有 "A.csv"
、"B.csv"
等文件,这将创建具有 "A_output.csv"
、"B_output.csv"
的新文件。另请注意,gather
现已停用并替换为 pivot_longer
。
我使用 "list.files" 函数将大量 csv 文件制作成列表:
list.files("C:/Users/gyero/Documents/daphnia/SUMMARY_CHIMP")
我想对每个文件使用 gather() 函数,然后使用 sink() 为每个 csv 文件生成单独的输出。我需要一些方法来识别哪个输出文件对应于哪个输入文件。
为了遍历文件,我使用了 lapply()
lapply(list.files[1:33], function{gather(WELL,MEASURE,A1:D6)})
我不确定如何获得相应的输出文件名 - 所以我尝试在 lapply 函数前面加上以下代码,这样至少输出文件会有一个唯一的名称并且不会被覆盖:
sink('DATA.CSV')
paste0(Sys.time(),'DATA.CSV')
但是,我对此很陌生,并且在网上搜索了我仍然无法实现我的目标(以上方法无效)。我将非常感谢任何能抽出时间帮助绝望的菜鸟的人。
你可以试试:
file_names <- list.files("C:/Users/gyero/Documents/daphnia/SUMMARY_CHIMP",
full.names = TRUE)
lapply(file_names, function(x) {
df <- read.csv(x)
write.csv(tidyr::gather(df,WELL,MEASURE,A1:D6),
paste0(sub("\.csv", "", basename(x)), "_output.csv"))
})
如果文件夹中有 "A.csv"
、"B.csv"
等文件,这将创建具有 "A_output.csv"
、"B_output.csv"
的新文件。另请注意,gather
现已停用并替换为 pivot_longer
。