在另一个向量上设置矢量基础

时间:2017-09-12 03:16:55

标签: r

我有2个输入向量,iv1iv2,如下所示。我想根据第一个元素的元素分离第二个向量的元素。它的工作原理如下:iv2的前两个值iv1中的值存储在ov1中,iv2中的值存储在iv1的第二个和第三个值之间1}}存储在ov2中,依此类推。注意:iv1iv2中的值已按升序排列。有什么想法吗?

输入:

iv1 <- c(100, 200, 300, 400, 435)
iv2 <- c(60, 120, 140, 160, 180, 230, 250, 255, 265, 270, 295, 340, 355, 401, 422, 424, 430)

期望的输出:

ov1 = c(120, 140, 160, 180)
ov2 = c(230, 250, 255, 265, 270, 295)
ov3 = c(340, 355)
ov4 = c(401, 422, 424, 430)

1 个答案:

答案 0 :(得分:1)

正如@RonakShah所建议的那样,在这种情况下最有效的方法可能是:

split(iv2, cut(iv2, breaks = iv1,labels = paste0('ov',1:4)))

输出:

$ov1
[1] 120 140 160 180

$ov2
[1] 230 250 255 265 270 295

$ov3
[1] 340 355

$ov4
[1] 401 422 424 430