【问题标题】:How can I write multiple csv files in a specific directory and then merge them into a single csv?如何在特定目录中写入多个 csv 文件,然后将它们合并到一个 csv 中?
【发布时间】:2019-03-11 16:31:10
【问题描述】:

我正在尝试处理从同一文件路径中的多个 .grb2 文件中提取子集,并将它们写入单独的 csv 文件中。我正在使用以下代码来完成这项工作并将 csv 文件存储在与 .grb2 文件相同的目录中。

path <- "file path"
input.file.names <- dir(path, pattern =".grb2")
output.file.names <- 
paste0(tools::file_path_sans_ext(input.file.names),".csv")
for(i in 1:length(input.file.names)){
  GRIB <- brick(input.file.names[i])
  GRIB <- as.array(GRIB)
  tmp2m.6hr <- GRIB[46,13,c(1:20)]
  str(tmp2m.6hr)
  tmp2m.data <- data.frame(tmp2m.6hr)
  write.csv(tmp2m.data,output.file.names[i])
}

我的第一个问题是:如何将 csv 文件存储在与 .grb2 文件不同的目录中? 我的 .grb2 文件以及生成的 csv 文件以四种不同的类型结尾,即 00.grb2、06.grb2、12.grb2、18.grb2。生成的 csv 文件格式如下:

enter image description here

我的第二个问题是:如何将我所有的 00.csv、06.csv、12.csv、18.csv 文件(同一列中的每个类别)合并到我选择的目录中的单个 csv 文件中以下标题:00_tmp2m.6hr, 06_tmp2m.6hr, 12_tmp2m.6hr, 18_tmp2m.6hr, 并用其他四列的平均值创建第五列?我想要的结果如下:

enter image description here

由于我不是经验丰富的用户,这对我来说太复杂了。我非常感谢您对此提供的任何帮助。

【问题讨论】:

    标签: r csv


    【解决方案1】:

    对于您的第一个问题,您可以尝试使用对文件夹的相对引用来指定路径,如write.csv(paste0("./myfolder/", output.file.names[i]))

    如果您读取数据然后将结果写入新文件,您的第二个问题可能会更容易。您可能还想看看write.csv(append = FALSE, ...) 的可选参数。

    另外,您可以通过创建minimal example 获得更好的答案。

    【讨论】:

      猜你喜欢
      • 2021-12-05
      • 1970-01-01
      • 2020-09-04
      • 2017-02-15
      • 2014-10-31
      • 1970-01-01
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多