0

我想重新调整我的数据。
例如:

if (0 <= data[i] <= 50) data[i] = 1 
if (50 < data[i] <= 100) data[i] = 2
if (100 < data[i] <= 150) data[i] = 3 

ETC ...

我可以通过使用“for”和“if”来繁琐地做到这一点,但最大值超过 3000。
有什么好主意吗?

4

1 回答 1

3

cut命令对于分割区域很有用,尤其是那些大小不规则的区域。

#test data
x<-c(1,25,50,75,100,122,150, 770)

#cut
nx<-cut(x, breaks=c(0,50,100,150,Inf), include.lowest=T, labels=F)

#compare
cbind(n, nx)

#        x  
# [1,]   1 1
# [2,]  25 1
# [3,]  50 1
# [4,]  75 2
# [5,] 100 2
# [6,] 122 3
# [7,] 150 3
# [8,] 770 4

或者,如果您真的所有部门都是 50 人,那么正如@Lashane 指出的那样

ceiling(x/50)

将在没有 if 的情况下完成所有操作,而无需指定所有中断。

于 2014-06-15T03:23:41.313 回答