如何使用modeest计算运行模式值

时间:2015-11-02 19:34:31

标签: r

我即将使用包" modeest"报告系列数据集的模式。

请参阅此网站有关该套餐的信息:modeest

例如:

x <- rbeta(1000,23,4)
M <- mlv(x, method = "kernel")
M[1]

M 1打印模式(最有可能的值)。

在我的情况下,我想使用running方法每10个数字获取模式值。

如果我的系列数据集包含100个数字,我希望每10个数字获得10个模式值。

请让我指导我如何在R中执行此操作。

我已经考虑过运行中位数&#34; runmed&#34;,我希望我能找到类似的报告运行模式值的方法。

非常感谢。

1 个答案:

答案 0 :(得分:1)

执行此操作的一种方法是先split the vector into chunks of equal size,然后使用lapplysapply

library(modeest)
x <- rbeta(100, 23, 4)
split_x <- split(x, ceiling(seq_along(x) / 10))
# alternative
# split_x <- split(x, cut(seq_along(x), 10, labels = FALSE))
sapply(split_x, function(x) mlv(x, method = "kernel"))

如果您只想mode,则可以将sapply的来电修改为sapply(split_x, function(x) mlv(x, method = "kernel")[1])sapply(split_x, function(x) mlv(x, method = "kernel")[[1]])

注意:这是向量x中每10个数字的模式值。我这样称呼它是为了避免与运行&#34;运行&#34;因为我听到&#34;跑步模式&#34;我倾向于认为符合&#34;移动或滚动平均值&#34;这将推断x[1:10], x[2:11], x[3:12], ... , x[91:100]的模式,但似乎不是你问的。