我正在写一个函数,它将我的数据分成簇。每个群集应该是一个因子级别。如何将相邻因子水平合并为一个?最后,我想要一个因子标签,它显示了集群中最低和最高的数字。例如,如果我有数据:
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()来做到这一点,但是当我将拥有大量数据,集群可能会变得混乱。
答案 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]