组合因子水平

Combine factor levels

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

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

所以这将构成一个具有 4 个级别的因子。比方说,我想结合第 2 级和第 3 级。我唯一能想到的就是使用 cut() 函数:

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

这给了我一个水平为“(0,1]”“(1,3]”“(3,4]”)的因素。现在我想结合“(1,3]”和“(3,4]”到级别“(1,4]”)。我该怎么做?是否可以只使用 data2 来做到这一点?我知道我可以通过对数据使用 cut() 来做到这一点,但是当我有很多数据时,集群可能会变得混乱。

随心所欲

 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]