Возвращает максимальное количество элементов в списке массивов разного размера - PullRequest
0 голосов
/ 19 июня 2020

Моя цель - написать простую функцию, которая принимает список из неопределенного количества массивов (а элементы могут быть строками или числами) и возвращает количество элементов в массиве с наибольшим количеством элементов.

В списке:

x <- list(c(1,2,3,4,5),
          c(1,2,3),
          c(1,2,3,4,5,6,7))

Ответом будет 7, потому что в третьем массиве максимальное количество элементов в списке.

По сути, мне сложно применить эту идею количества элементов в единичный массив в списке. Когда я пытаюсь, как в примере ниже, я считаю количество всех элементов. Сложность в том, что я не могу использовать al oop для ее решения, только функции, такие как sapply(), или встроенные функции - без импорта или вызова из других библиотек. Как подсчитать количество элементов в каждом массиве в списке, а затем использовать в нем max()?

listMax <- function(x) {
  findMax <- sum(sapply(x,length))
  print(findMax)
}

Ответы [ 2 ]

3 голосов
/ 19 июня 2020

Вы можете использовать lengths для подсчета длины каждого элемента в списке, а затем использовать max

max(lengths(x))
#[1] 7
1 голос
/ 19 июня 2020
max(unlist(lapply(x, length)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...