这是R 的另一个版本 - 如何在另一列上的条件定义的间隔之间对列中的对象求和
我有 3 个时间变量 t1、t2 和 t3 以及带有数字的相应列。我想将“数字”中的变量汇总在一起,这些变量将落在 和 之间的时间范围t1[i]
内t2[i]
。例如:
t1 <- c(1.12, 2.16, 3.18, 4.56, 8.90, 29.36, 30.30, 31.30, 36.90, 50.01)
t2 <- c(2.14, 2.77, 3.65, 4.78, 8.99, 30.01, 31.07, 31.89, 40.30, 55.08)
t3 <- c(1.16, 1.55, 1.35, 2.17, 2.18, 2.19, 2.34, 3.30, 4.59, 8.91, 29.99, 30.32, 30.98, 31.32, 37.00, 52.00, 54.00)
numbers <- c(7,1,2,5,5,6,9,12, 13, 22, 7, 1, 7, 11, 21, 29)
我正在寻找如下输出的输出:这里我有 t3 中的前 3 个数字满足我的标准,依此类推,它们被汇总并存储在一个新的向量“输出”中。请注意,这里的“输出”是我自己编写的,不是计算出来的(如示例所示)。我可以计算第一组,但是我的 i 保持在相同的值,我不能继续......希望你能帮助我,谢谢你的时间。
output = (7+1+2,5+5+6+9,12,13,22,7,1,7,11,21+29)
output = (10, 25, 12, 13, 22, 7, 1, 7, 11, 50)
到目前为止,这就是我所拥有的:
t1 <- c(1.12, 2.16, 3.18, 4.56, 8.90, 29.36, 30.30, 31.30, 36.90, 50.01)
t2 <- c(2.14, 2.77, 3.65, 4.78, 8.99, 30.01, 31.07, 31.89, 40.30, 55.08)
t3 <- c(1.16, 1.55, 1.35, 2.17, 2.18, 2.19, 2.34, 3.30, 4.59, 8.91, 29.99, 30.32, 30.98, 31.32, 37.00, 52.00, 54.00)
numbers <- c(7,1,2,5,5,6,9,12, 13, 22, 7, 1, 7, 11, 21, 29)
i = 1
j = 1
k = 1
N = NULL
Sums = NULL
while (j < length(t1))
{
while (i < length(t3))
{
if (t3[i] > t1[j] & t3[i] <= t2[j])
{
N[i] <- numbers[i]
}
i = i + 1
}
Sums[k] = sum(N)
k = k + 1
j = j + 1
}