Преобразование нескольких CSV. файлы в несколько матриц с оригинальными именами в R - PullRequest
0 голосов
/ 26 апреля 2020

у меня 20 csv. файлы с data.frames и хочу преобразовать один из столбцов (logF0) в каждом кадре данных в матрицу 20 * 16. Результат должен быть 20 20 * 16 матриц, и я надеюсь, что имена матриц могут совпадать с CSV. файлы. Я подумал, что мог бы использовать al oop, чтобы сначала преобразовать кадр данных отдельно в матрицу:

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. файлы.

1 Ответ

1 голос
/ 26 апреля 2020

Вы можете использовать:

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

Если вы хотите дать этому списку имена, вы можете сделать:

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