首页 > 解决方案 > 返回不同大小数组列表中的最大元素数

问题描述

我的目标是编写一个简单的函数,该函数接受不定数量的数组列表(元素可以是字符串或数字),并返回数组中元素最多的元素数。

在列表中:

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

答案是 7,因为第三个数组在列表中具有最大数量的元素。

从概念上讲,我很难将元素计数的想法应用于列表中的单个数组。当我尝试时,如下例所示,我计算所有元素的数量。困难在于我不能使用循环来解决它,只能使用类似sapply()或内置函数的函数 - 不能从其他库导入或调用。如何计算列表中每个数组的元素数量,然后max()在其上使用?

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

标签: r

解决方案


您可以使用lengths计算列表中每个元素的长度,然后使用max

max(lengths(x))
#[1] 7

推荐阅读