发现向量中接连增加的数字

问题描述 投票:0回答:2

我有以下向量:

essaie <- "23690,55050,127789,64253,130127,63093,63093,63093,108374,63093,63093"
essaie_z <- c(as.numeric(unlist(strsplit(essaie, ","))))

我想知道哪个数字重复最多,重复多少次。基本上,我想知道:

连续重复次数最多的数字:63093多少次:3

我如何在r中做到这一点?

谢谢,

r
2个回答
1
投票

您可以使用功能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

您要的是与最长运行时间相对应的值。


0
投票

您可以尝试使用函数来计算模式:

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

它将返回模式和数量。

问候,

亚历克西斯


0
投票

如何尝试

unique(essaie_z[diff(essaie_z)==0])
© www.soinside.com 2019 - 2024. All rights reserved.