对于一个数据框中的每个观察值,计算第二个数据框中的观察值数量
For each observation in one data frame, count number of observations in a second data frame
我有两个数据框。我想 运行 来自第一个数据框的所有观察结果,并添加一列指示来自第二个数据框的符合特定条件的观察结果数量。
例如:
DF1
observation Value
1 3
2 5
3 8
4 10
5 1
DF2
observation Value
1 8
2 9
3 2
4 1
5 3
我想为 DF1 创建第三列,指示 DF2 中的值(例如)最多大于或小于 2(|Value2 - Value1| <= 2)的观测值的数量。因此在这种情况下我的结果是:
DF1
observation Value Count
1 3 3
2 5 1
3 8 2
4 10 2
5 1 3
我们可以遍历 'DF1' 的 'Value',得到 sum
的绝对差值就是 'Value' 和 'DF2'小于或等于 2
DF1$Count <- sapply(DF1$Value, function(x) sum(abs(x-DF2$Value) <=2))
或者outer
,我们从数据集中获取'Value'列的每个组合的差异,检查绝对值是否小于等于2并找到rowSums
DF1$Count <- rowSums(abs(outer(DF1$Value, DF2$Value, `-`))<=2)
DF1$Count
#[1] 3 1 2 2 3
我有两个数据框。我想 运行 来自第一个数据框的所有观察结果,并添加一列指示来自第二个数据框的符合特定条件的观察结果数量。
例如:
DF1
observation Value
1 3
2 5
3 8
4 10
5 1
DF2
observation Value
1 8
2 9
3 2
4 1
5 3
我想为 DF1 创建第三列,指示 DF2 中的值(例如)最多大于或小于 2(|Value2 - Value1| <= 2)的观测值的数量。因此在这种情况下我的结果是:
DF1
observation Value Count
1 3 3
2 5 1
3 8 2
4 10 2
5 1 3
我们可以遍历 'DF1' 的 'Value',得到 sum
的绝对差值就是 'Value' 和 'DF2'小于或等于 2
DF1$Count <- sapply(DF1$Value, function(x) sum(abs(x-DF2$Value) <=2))
或者outer
,我们从数据集中获取'Value'列的每个组合的差异,检查绝对值是否小于等于2并找到rowSums
DF1$Count <- rowSums(abs(outer(DF1$Value, DF2$Value, `-`))<=2)
DF1$Count
#[1] 3 1 2 2 3