цикл for для печати размеров файлов в списке - PullRequest
0 голосов
/ 10 декабря 2018
temp <- list.files(pattern = '*.xlsx')
list <- lapply(temp,read_excel)

В приведенном выше списке 12 файлов.Я хочу проверить размеры каждого из этих 12 файлов, то есть количество строк и столбцов в каждом файле.

for(i in length(list)){
  print(dim(list[[i]]))
}

[1] 12533    49

Вышеуказанный цикл for дает мне вывод только последнего файла, тогда как мне нужен дляцикл, чтобы дать мне размер каждого из 12 файлов.

Может кто-нибудь, пожалуйста, дайте мне знать, что нужно сделать.

1 Ответ

0 голосов
/ 10 декабря 2018

Вам нужно изменить цикл for на

for(i in 1:length(list)){
   print(dim(list[[i]]))
}

, поскольку 1:length(list) создаст последовательность чисел для циклического перебора, тогда как length(list) даст только длину списка (что12 в вашем случае) и не будет генерировать последовательность.

Более того, вам даже не нужен цикл для этого.Вы можете просто использовать lapply, и это даст вам размеры списка.

lapply(list, dim)

Например,

list_df <- list(mtcars, iris)
lapply(list_df, dim)

#[[1]]
#[1] 32 11

#[[2]]
#[1] 150   5

С другой стороны, не рекомендуется называть ваш список list, поскольку это внутренняя функция R.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...