Вы можете использовать purrr:map()
.
Если вы знаете тип вывода (в данном случае, кажется, все целые числа), вы можете быть более конкретным, например, map_int()
.С map()
вы получите список обратно, с определенной версией map
, например, map_int()
, вместо этого вы получите вектор.
library(tidyverse)
ix <- 3 # let's say we want the sum of the third row
map_int(Mylist, ~sum(.x[ix, ]))
[1] 9 29 49
Если индекс строки, который вас интересует, изменяется вматрицу, вы можете использовать map2()
вместо этого, который принимает два входа одинаковой длины:
ixs <- c(1, 2, 3)
map2_int(Mylist, ixs, ~sum(.x[.y, ]))
[1] 5 27 49
В качестве альтернативы, если вам нужно работать в базе R, вы можете просто взятьжелаемый индекс (здесь ix
) sum()
, вам не нужно apply()
внутри lapply()
:
lapply(Mylist, function(x) sum(x[ix, ]))
[[1]]
[1] 9
[[2]]
[1] 29
[[3]]
[1] 49