为了账号安全,请及时绑定邮箱和手机立即绑定

是否有一个内置的功能来查找模式?

是否有一个内置的功能来查找模式?

猛跑小猪 2019-06-12 21:21:21
是否有一个内置的功能来查找模式?在R,mean()和median()都是标准的函数,可以做你期望的事情。mode()告诉您对象的内部存储模式,而不是其参数中发生最多的值。但是,是否有一个标准库函数来实现向量(或列表)的统计模式?
查看完整描述

3 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

还有一个解决方案,它既适用于数字数据,也适用于字符/因素数据:

Mode <- function(x) {
  ux <- unique(x)
  ux[which.max(tabulate(match(x, ux)))]}

在我的小机器上,它可以在大约半秒钟内生成和找到10m整数向量的模式。

如果您的数据集可能有多种模式,则上述解决方案采用的方法与which.max,并返回先出现模式集的值。返回模式,使用此变体(注释中的@digEmAll):

Modes <- function(x) {
  ux <- unique(x)
  tab <- tabulate(match(x, ux))
  ux[tab == max(tab)]}


查看完整回答
反对 回复 2019-06-12
?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

有包裹modeest它提供了单变量单峰(有时是多模)数据模式的估计和通常概率分布模式的值。

mySamples <- c(19, 4, 5, 7, 29, 19, 29, 13, 25, 19)library(modeest)mlv(mySamples, method = "mfv")Mode (most likely value):
 19 Bickel's modal skewness: -0.1 
Call: mlv.default(x = mySamples, method = "mfv")

有关更多信息,请参见本页


查看完整回答
反对 回复 2019-06-12
?
UYOU

TA贡献1878条经验 获得超4个赞

在r邮件列表上找到这个,希望它有帮助。这也是我一直在想的。您需要表()数据,对数据进行排序,然后选择名称。这很麻烦,但应该管用。

names(sort(-table(x)))[1]


查看完整回答
反对 回复 2019-06-12
  • 3 回答
  • 0 关注
  • 644 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号