指定间隔的因子级别

时间:2014-02-04 16:37:05

标签: r

我有一个连续的变量,我想把它变成一个因素。

数据是:

DCA<-c(0.14,0.14,0.16,0.16,0.27,0.27,0.07,0.07,0.41,0.41,0.00,0.00,0.33,0.33,0.11,0.11,0.64,0.64,0.28,0.28,0.02,0.02,0.43,0.43,0.24,0.24,0.08,0.08,0.00,0.00,0.64,0.64,0.07,0.07,0.16,0.16,0.24,0.24,0.26,0.26,0.64,0.64,0.22,0.22,0.03,0.03,0.03,0.03,0.35,0.35,0.35,0.35,0.37,0.37,0.37,0.37,0.22,0.22,0.00,0.00,0.33,0.33,0.19,0.19,0.33,0.33,0.33,0.33,0.02,0.02,0.36,0.36)

我知道您可以使用

快速完成此操作
DCA.f<-factor(DCA)

但这会为每个唯一值创建因子。我想指定因子水平,以便水平

0,小于或等于0.10,大于0.10且小于或等于0.20,依此类推,直至大于0.50。

我认为这必须在因子函数的“级别”中指定,但我不知道如何指定上面描述的内容。

1 个答案:

答案 0 :(得分:2)

查看cut

cut(DCA, c(-Inf, seq(0, .5, .1), Inf))
#  [1] (0.1,0.2]  (0.1,0.2]  (0.1,0.2]  (0.1,0.2]  (0.2,0.3]  (0.2,0.3]  (0,0.1]   
#  [8] (0,0.1]    (0.4,0.5]  (0.4,0.5]  (-Inf,0]   (-Inf,0]   (0.3,0.4]  (0.3,0.4] 
# [15] (0.1,0.2]  (0.1,0.2]  (0.5, Inf] (0.5, Inf] (0.2,0.3]  (0.2,0.3]  (0,0.1]   
# [22] (0,0.1]    (0.4,0.5]  (0.4,0.5]  (0.2,0.3]  (0.2,0.3]  (0,0.1]    (0,0.1]   
# [29] (-Inf,0]   (-Inf,0]   (0.5, Inf] (0.5, Inf] (0,0.1]    (0,0.1]    (0.1,0.2] 
# [36] (0.1,0.2]  (0.2,0.3]  (0.2,0.3]  (0.2,0.3]  (0.2,0.3]  (0.5, Inf] (0.5, Inf]
# [43] (0.2,0.3]  (0.2,0.3]  (0,0.1]    (0,0.1]    (0,0.1]    (0,0.1]    (0.3,0.4] 
# [50] (0.3,0.4]  (0.3,0.4]  (0.3,0.4]  (0.3,0.4]  (0.3,0.4]  (0.3,0.4]  (0.3,0.4] 
# [57] (0.2,0.3]  (0.2,0.3]  (-Inf,0]   (-Inf,0]   (0.3,0.4]  (0.3,0.4]  (0.1,0.2] 
# [64] (0.1,0.2]  (0.3,0.4]  (0.3,0.4]  (0.3,0.4]  (0.3,0.4]  (0,0.1]    (0,0.1]   
# [71] (0.3,0.4]  (0.3,0.4] 
# 7 Levels: (-Inf,0] (0,0.1] (0.1,0.2] (0.2,0.3] (0.3,0.4] ... (0.5, Inf]

您可能想要自定义第二个参数(“breaks”)来表示您实际查找的中断,并查看可以传递给cut的其他一些参数。功能