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