转换多个CSV。文件分成多个矩阵,原始名称在R

问题描述 投票:0回答:1

我有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中。文件。

r csv matrix naming
1个回答
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))
© www.soinside.com 2019 - 2024. All rights reserved.