我有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中。文件。
您可以使用:
all_data <- lapply(files_list, function(file) {
df <- read.csv(file)
matrix(df$$logF0, nrow = 20)
})
如果要给此列表名称,则可以执行:
names(all_data) <- sub('\\.csv', '', basename(file_list))