在离散变量(interval方法)之后,我很难检查某个值是否属于某个区间。
向量c(1:10)中的离散化a
(a<-unique(discretize(1:10,method="interval",5)))
[1] [ 1.0, 2.8) [ 2.8, 4.6) [ 4.6, 6.4) [ 6.4, 8.2) [ 8.2,10.0]
然后检查值4在哪个区间内是以“盾”为单位的:
for(i in 1:5){print(findInterval(x=4,a[i]))}
[1] 1
[1] 1
[1] 1
[1] 1
[1] 0
而它应该会导致0 1 0 0 0
我做错了什么?离散化函数和findInterval不能很好地结合起来?
编辑:另一个相关的问题:为什么在对一列进行离散之后,当我感到不舒服时,我会得到重复的值?
(a<-discretize(1:10,method="interval",5)) [1] [ 1.0, 2.8) [ 1.0, 2.8) [ 2.8, 4.6) [ 2.8, 4.6) [ 4.6, 6.4) [ 4.6, 6.4) [ 6.4, 8.2) [8] [ 6.4, 8.2) [ 8.2,10.0] [ 8.2,10.0]
发布于 2016-12-13 20:43:13
我认为你使用findInterval不正确。你的向量,a,不需要是那种形式的。您只需要定义间隔的阈值点的向量。尝尝这个
a<-seq(1,10, length.out=6)
findInterval(4,a)https://stackoverflow.com/questions/41129844
复制相似问题