Мы получаем length
отдельных элементов list
с помощью lengths
, затем получаем значение max
с помощью max
, создаем логический индекс и устанавливаем подмножество list
i1 <- max(lengths(lst))
i2 <- lengths(lst)== i1
lst[i2]
Предполагая, что ОП хотел вектор, как описано в посте
f1 <- function(listA, i = 1) {
i1 <- max(lengths(listA))
listB <- lapply(listA, `length<-`, i1)
Reduce(`+`, lapply(listB, function(x) replace(x, is.na(x), 0)))
}
f1(lst)
#[1] 3 -36 54
Если он нам нужен в matrix
, это можно сделать с помощью stri_list2matrix
и получитьsum
с rowSums
library(stringi)
out <- stri_list2matrix(lst)
class(out) <- 'numeric'
rowSums(out, na.rm = TRUE)
#[1] 3 -36 54
данные
lst <- list(-3, c(0, 0), c(6, -36, 54))