【发布时间】:2018-05-04 09:47:21
【问题描述】:
我有一个显示一组条件的数据框,例如:
B = data.frame(col1 = 1:10, col2 = 11:20 )
例如,第一行表示当 col1 = 1 时,col2 = 11。 我还有另一个数据框,其中的数字应满足这些条件,例如:
A = data.frame(col1 = c(1:11,1:11), col2 = c(11:21,11:21), col3 = 101:122)
我想返回矩阵 A 中满足 B 中条件的所有行的 col3 中的值的总和。例如,使用 B 中的第一行,该值是:
sum(A$col3[which(A$col1 == B$col1[1] & A$col2 == B$col2[1])])
#[1] 213
这是A 的第 1 行和第 12 行中 col3 中条目的总和。我需要为矩阵A 的所有行找到一个包含所有这些总和的向量。我知道如何使用循环来执行此操作,但是在我的数据矩阵中 A 和 B 非常大并且有很多条件,所以我想知道是否有办法在没有循环的情况下做同样的事情。谢谢。
【问题讨论】:
-
我稍微编辑了您的原始帖子,因为您在 R 中称为
matrix实际上是data frame。
标签: r loops dataframe conditional match