【问题标题】:Converting multiple csv. files into multiple matrixs with original names in R转换多个csv。将文件转换为具有 R 中原始名称的多个矩阵
【发布时间】:2020-08-09 14:56:54
【问题描述】:

我有 20 个 csv。带有 data.frames 的文件,并且想要将每个数据帧中的一列 (logF0) 转换为 20*16 矩阵。结果应该是 20 个 20*16 矩阵,我希望矩阵的名称可以与 csv 相同。文件。我以为我可以使用循环将数据帧分别转换为矩阵:

files_list<-list.files("my_path", full.names = TRUE, pattern = "*.csv") 
for(i in 1: length(files_list))
{dat<-data.frame()
  mat<-matrix()
  file[i]<-rbind(dat, read.csv(files_list[i]))
  mat[i]<-rbind(mat, matrix(file[i]$logF0, nrow=20, byrow = F))}

不行,感觉file[i]mat[i]的命名有问题但是不知道怎么解决,也不知道怎么给矩阵起名字最初是在 csv 中。文件。

【问题讨论】:

  • mylist &lt;- sapply(files_list, read.csv, simplify = FALSE) 是一个矩阵的命名列表(名称是文件名)的开始。从那里,你可以做类似do.call(rbind, mylist)

标签: r csv matrix naming


【解决方案1】:

你可以使用:

all_data <- lapply(files_list, function(file) {
   df <- read.csv(file)
   matrix(df$$logF0, nrow = 20)
})

如果你想给这个列表命名,你可以这样做:

names(all_data) <- sub('\\.csv', '', basename(file_list))

【讨论】:

    猜你喜欢
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多