我有以下向量:
essaie <- "23690,55050,127789,64253,130127,63093,63093,63093,108374,63093,63093"
essaie_z <- c(as.numeric(unlist(strsplit(essaie, ","))))
我想知道哪个数字重复最多,重复多少次。基本上,我想知道:
连续重复次数最多的数字:63093多少次:3
我如何在r中做到这一点?
谢谢,
您可以使用功能rle
:
runs <- rle(essaie_z)
runs$values[which.max(runs$lengths)]
输出:63093
说明rle
代表“游程编码”。它报告数据中的运行以及这些运行的长度,并以列表形式返回结果:
> rle(essaie_z)
Run Length Encoding
lengths: int [1:8] 1 1 1 1 1 3 1 2
values : num [1:8] 23690 55050 127789 64253 130127 63093 108374 63093
您要的是与最长运行时间相对应的值。
您可以尝试使用函数来计算模式:
essaie <- "23690,55050,127789,64253,130127,63093,63093,63093,108374,63093,63093"
essaie_z <- c(as.numeric(unlist(strsplit(essaie, ","))))
getmode <- function(v) {
uniqv <- unique(v)
uniqv[which.max(tabulate(match(v, uniqv)))]
}
getmode(essaie_z)
length(essaie_z[essaie_z == getmode(essaie_z)])
它将返回模式和数量。
问候,
亚历克西斯
如何尝试
unique(essaie_z[diff(essaie_z)==0])