在 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]
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]