我有兩個串列l1,l2我想組合起來看起來像expected,并使用lapply. 我希望它更有效,這樣我就不必每次都輸入值,因為我想將它用于更大的串列。有什么更好的方法可以做到這一點?
l1 <- list(1,2,3,4,5)
l2 <- list(6,7,8,9,10)
expected <- list(c(1,6), c(2,7), c(3,8), c(4,9), c(5,10))
lapply(expected, mean)
謝謝!
uj5u.com熱心網友回復:
我們可以使用Map連接 ( c) 并獲得mean
Map(c, l1, l2)
mapply(\(x, y) mean(c(x, y)), l1, l2)
[1] 3.5 4.5 5.5 6.5 7.5
或者不是在回圈中執行此操作,而是針對向量,unlist針對a并獲取listcbindmatrixrowMeans
rowMeans(cbind(unlist(l1), unlist(l2)))
[1] 3.5 4.5 5.5 6.5 7.5
或者可以使用pmeanfromkit
library(kit)
pmean(unlist(l1), unlist(l2))
[1] 3.5 4.5 5.5 6.5 7.5
uj5u.com熱心網友回復:
另一個可能的解決方案:
rowMeans(do.call(rbind, Map(data.frame, A=l1, B=l2)))
#> [1] 3.5 4.5 5.5 6.5 7.5
或使用purrr::map2_dbl:
library(purrr)
map2_dbl(l1, l2, ~ mean(c(.x, .y)))
#> [1] 3.5 4.5 5.5 6.5 7.5
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/435213.html
