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