【发布时间】: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 <- sapply(files_list, read.csv, simplify = FALSE)是一个矩阵的命名列表(名称是文件名)的开始。从那里,你可以做类似do.call(rbind, mylist)