获取2个向量的条件求和

时间:2019-07-13 15:36:36

标签: r

我的作业需要帮助!下面是问题。

将来自一个农场的苹果的平均(平均)重量(克)保存在向量w1中一周,而将同一周收集的苹果数量保存在向量n1中。

w1 <- c(350, 270, 320, 420, 310, 300, 400)
n1 <- c(1220, 780, 563, 1100, 980, 990, 1150)

苹果农场认为最小苹果重量应为350克。计算一周中有多少苹果不符合最低体重标准? (假设一天中的所有苹果的重量相同)

我已经尝试过了:

sum(w1[which(w1>=350)]*n1)

但是我明白了

[1] 2574900
Warning message:
In w1[which(w1 >= 350)] * n1 :
longer object length is not a multiple of shorter object length

1 个答案:

答案 0 :(得分:1)

我们需要使用逻辑向量来代替两个向量,而不是1。警告消息是由于这个原因(一个向量是完整向量-n1)而第二个是子集('w1')

i1 <- w1 < 350
sum(w1[i1] * n1[i1])

或者也可以写为

as.numeric(w1[i1] %*% n1[i1])

编辑:根据@RuiBarradas评论