Возможно, что некоторые элементы list
не имеют совпадения и возвращают integer(0)
, который сбрасывается при unlist
инг. Используя простой пример
lst1 <- list(c(5, 0), c(3, 2, 4), 5)
sapply(lst1, function(x) which(x == 5))
#[[1]]
#[1] 1
#[[2]]
#integer(0)
#[[3]]
#[1] 1
, когда мы unlist
, второй элемент отбрасывается
unlist(sapply(lst1, function(x) which(x == 5)))
#[1] 1 1
, возвращая length
из 2 вместо 3
Но Это просто совпадение, что длина меньше. Это может быть больше задницы хорошо
lst1 <- list(c(5, 0, 5, 5), c(3, 2, 4), c(5, 3, 5))
unlist(sapply(lst1, function(x) which(x == 5)))
#[1] 1 3 4 1 3
Здесь length
равно 5, то есть больше, чем length
из list
. Это также может быть равным просто по совпадению