【问题标题】:Read in multiple .csv files, transform them and save as new files in R读入多个 .csv 文件,对其进行转换并在 R 中另存为新文件
【发布时间】:2022-06-23 22:55:43
【问题描述】:

我的工作目录中有 90 个 .csv 文件,每个文件都是一个 90*90 的矩阵。文件名称不一致(这是一个示例)

>list.files()
[1] "sub-001-SGU-cn.csv" 
[2] "sub-001-SGU-nv.csv" 
[3] "sub-002-Cam-cn.csv" 
[4] "sub-002-Man-lv.csv"
[5] "sub-002-SGU-cn.csv"

每个矩阵都是不对称的(即,只有上三角包含值,下三角包含零)。我想编写一个循环函数来读取每个文件,对上三角形进行log10 转换,并将输出保存在我的工作目录中,名称相同但添加后缀“_log.csv”。我如何在 R 中做到这一点?

【问题讨论】:

    标签: r dplyr lapply purrr split-apply-combine


    【解决方案1】:

    我们可能会使用

    files <- list.files(pattern = "\\.csv$", full.names = TRUE)
    new_names <- sub(files, "\\.csv$", "_log.csv", files)
    lst1 <- lapply(files, function(x) {
                  dat <- read.csv(files)
                  dat[upper.tri(dat)] <- log10(dat[upper.tri(dat)])
                  dat
         })
    Map(function(x, y) write.csv(x, file = y, row.names = FALSE, quote = FALSE),
          lst1, new_names)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-27
      • 2018-07-04
      • 1970-01-01
      • 2019-10-05
      • 1970-01-01
      • 2021-06-02
      • 2011-08-04
      • 1970-01-01
      相关资源
      最近更新 更多