【发布时间】:2018-08-24 07:13:34
【问题描述】:
我有很多列表,我想对最小值小于 3 的每个列表的最小值求和。 瞬间,
a <- c(3,4,1,5,6)
b <- c(2,1,1,0,5)
c <- c(6,7,5,4,4)
list1 <- list(a,b,c)
minlist1 <- lapply(list1, min)
sum(unlist(minlist1 <=1))
> minlist1
[[1]]
[1] 1
[[2]]
[1] 0
[[3]]
[1] 4
> sum(unlist(minlist1 <=3))
[1] 2
#but according to the minlist1 the value should be sum up is 1 and 0
#so the result should be 1 no 2.
但是根据 minlist1 的值应该是 1 和 0。所以结果应该是 1 没有 2。 请给我一个提示,我该怎么做。谢谢
【问题讨论】:
-
minlist1 <=3返回FALSE/TRUE,编码为0/1。TRUE有 2 个值,总和为 2。 -
Roman 的方式推荐使用
sapply,但要完成你的尝试,如果你使用lapply,你需要使用sum(unlist(minlist1[minlist1 <=3]))。