我有 4 个向量:
a <- c(1.12,2.30,3.03,4.05)
b <- c(2.03,3.05,4.02,5.03)
c <- c(1.5, 1.6, 1.7, 2.1, 3.3, 3.7,4.1)
v <- c(2,3,3,2,17,13,50)
我想要做的是我想对向量 v 中的值求和,如果它们代表向量 c 并且向量 c 中的数字序列在 a[i] 和 b[i] 之间我想添加向量 v 中的数字一起存储在一个新的向量中。
所以数字 1.5, 1.6, 1.7 介于 a[1] 和 b[1] 之间,使得 a[1] < c[1], c[2], c[3] < b[1],因此总和一个新向量是 2+3+3 = 8。我想将这个数字存储在一个新向量中,然后转到 a[2] 和 b[2] 并再次将这些数字与 c 进行比较。这是我到目前为止所拥有的,但是它给了我一个错误:(。
a <- c(1.12,2.30,3.03,4.05)
b <- c(2.03,3.05,4.02,5.03)
c <- c(1.5, 1.6, 1.7, 2.1, 3.3, 3.7,4.1)
v <- c(2,3,3,2,17,13,50)
i = 1
j = 1
k = 1
p = 1
S1 = NULL
U1 = NULL
while (i < length(c) & j < length(a))
{
if (c[i] > a[j] & c[i] <= b[j])
{
S1[i] <- (v[i])
}
i = i + 1
U1[k] <- sum(S1)
else
{
j = j + 1
k = k + 1
}
}