在 R 中查找模式和替换分区的建议

Suggestion for finding patterns and replacing partitions in R

n = c(1, 2, 3, 3, 3, 3, 1, 1, 2, 3, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 3, 2, 3)

我想 divide/split 将它们分成每 3 个整数的段,并找到每个段的模式(A:全部不同,B:两个相同,C:全部相同)。

我用

做了分区
par = split(n, ceiling(seq_along(n)/3))

但我无法获取模式,有什么建议吗? 我想得到类似

的东西
newn
[1] A C B A C C A 

计算唯一值的个数,然后分配字母:

par2 <- sapply(par, function(x) length(unique(x)))
c("C", "B", "A")[par2]
[1] "A" "C" "B" "A" "C" "C" "A" "B"

如果你不想要最后的 B(由于长度为二的向量),你可以先做:

par <- par[lengths(par) == 3]