使用另一个向量的断点将R中的向量切割为区间
我有两个向量vec1和vec2使用另一个向量的断点将R中的向量切割为区间,r,vector,R,Vector,我有两个向量vec1和vec2 vec1 <- c(0:10) vec2<- c(-5:12) 也许你在找 ifelse(vec2 < min(vec1), min(vec1), ifelse(vec2 > max(vec1), max(vec1), vec2)) #> [1] 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9 10 10 10 ifelse(vec2max(vec1)、max(vec1)、vec2)) #
vec1 <- c(0:10)
vec2<- c(-5:12)
也许你在找
ifelse(vec2 < min(vec1), min(vec1), ifelse(vec2 > max(vec1), max(vec1), vec2))
#> [1] 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9 10 10 10
ifelse(vec2max(vec1)、max(vec1)、vec2))
#> [1] 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9 10 10 10
我注意到这与您的示例输出不太匹配,但它似乎符合您对所尝试的操作的描述。您在示例中似乎犯了几个错误。如果您需要更改输出,可以很容易地修改它。您期望的输出是什么?你可以使用
findInterval(vec2,vec1)
@RonakShah vec2的预期小数点应该是这样的:1 1 1 1 2 3 4 6 7 8 9 10 10请用预期的输出更新你的帖子。为什么开头有7个1vec1
在0和1处有中断。为什么result2
1是vec2
?这是我第一次发布,所以我可能在这里和那里犯了一些错误。我已经改正了。
vec2 result
1 -5 1
2 -4 1
3 -3 1
4 -2 1
5 -1 1
6 0 1
7 1 1
8 2 1
9 3 3
10 4 4
11 5 5
12 6 7
13 7 8
14 8 9
15 9 10
16 10 10
17 11 10
18 12 10
ifelse(vec2 < min(vec1), min(vec1), ifelse(vec2 > max(vec1), max(vec1), vec2))
#> [1] 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9 10 10 10