【发布时间】:2020-10-01 14:32:08
【问题描述】:
假设我有两个向量,例如:
a <- c(1,2,2.1,2.2,3,4,5,6,7,8,9)
b <- c(0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5,7.6,7.7,8.5)
用函数过滤两个向量:
a_corrected_by_b <- c(1,2,3,4,5,6,7,8,9)
b_corrected_by_a <- c(0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5)
因此,当您将两个列表彼此相减时,您会得到:
c <- (a_corrected_by_b - b_corrected_by_a)
#((1-0.5), (2-1.5), (3-2.5), (4-3.5), (5-4.5), (6-5.5), (7-6.5), (8-7.7), (9-8.5))
我只是不知道如何过滤两个向量,这样你就可以得到两个可以正确相减的向量。
每个b向量值之间应该有一个a向量值,每个a向量值之间应该有一个b向量值。
它也应该是与任一列表中的值最接近的值。那么是否有任何函数可以通过这两个向量并删除不必要的值?所以这两个向量可以是相同的长度,并且有适当的值可以相互减去。
【问题讨论】:
-
当有多个值时,您如何确定
a的哪个值位于b的两个值之间?例如。在a2,2.1,2.2介于1.5,2.5和b之间 -
@markus 是最接近的值,例如,列表 b 中的 1.5 与列表 a 中的 2 相关。列表 b 中的 2.5 与列表 a 中的 3 相关。比较时,列表 a 中的数字也应始终大于列表 b 中的数字。
-
@ChuckP 我确实想这样做,但是它有一些细微差别。例如,列表 a[1] 可以是 5,b[1] 可以是 3,可以减去。但是 a[6] 可能是 12 而 b[6] 可能是 17 这不行。