组合因子水平

问题描述:

我正在写一个函数,它将我的数据划分为簇。每个群集应该是一个因子级别。我怎样才能将邻近因素水平合并为一个?最后,我想拥有因子标签,这些标签显示了群集中最低和最高的号码。例如,如果我有数据:组合因子水平

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

因此,这将使一个因素与4个级别。比方说,我想结合第二和第三级。我能想到的唯一的事情就是使用剪切()函数:

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

,给了我一个因素与水平“(0,1]”“(1,3]”“(3,4] “现在我想将”(1,3)“和”(3,4)“合并为一个”(1,4)“级别,我该如何做到这一点?是否可以做到这一点使用DATA2?我知道我可以使用数据切()做到这一点,但是当我将有大量的数据,聚类可能会导致混乱。

只是做

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]