结合因子水平

时间:2015-05-29 06:30:04

标签: r merge levels

我正在写一个函数,它将我的数据分成簇。每个群集应该是一个因子级别。如何将相邻因子水平合并为一个?最后,我想要一个因子标签,它显示了集群中最低和最高的数字。例如,如果我有数据:

data <- c(1,2,1,1,2,4,2,3,3,2,4,3,2)  
data2 <- as.factor(data)  

所以这将成为4个级别的因素。让我们说,我想结合第二和第三级。我唯一能想到的就是使用cut()函数:

data2 <- cut(data, breaks=c(0,1,3,4))  

给了我一个水平“(0,1)”“(1,3)”“(3,4)”的因子。现在我想把“(1,3)”和“ (3,4)“进入一个级别”(1,4)“。我怎么能这样做?是否有可能只使用data2?我知道我可以在数据上使用cut()来做到这一点,但是当我将拥有大量数据,集群可能会变得混乱。

1 个答案:

答案 0 :(得分:1)

只做

 levels(data2)[2:3] <- '(1,4]'
 data2
 #[1] (0,1] (1,4] (0,1] (0,1] (1,4] (1,4] (1,4] (1,4] (1,4] (1,4] (1,4] (1,4]
#[13] (1,4]
#Levels: (0,1] (1,4]