我不知道如何重新调整数据? (例如0~50:1 50~100:2等等..)

时间:2014-06-15 03:19:08

标签: r rescale

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

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

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

1 个答案:

答案 0 :(得分: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)

将在没有指定所有中断的情况下完成所有操作。