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

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

在R,mean()median()都是标准的函数,可以做你期望的事情。mode()告诉您对象的内部存储模式,而不是其参数中发生最多的值。但是,是否有一个标准库函数来实现向量(或列表)的统计模式?



猛跑小猪
浏览 645回答 3
3回答

智慧大石

还有一个解决方案,它既适用于数字数据,也适用于字符/因素数据:Mode&nbsp;<-&nbsp;function(x)&nbsp;{ &nbsp;&nbsp;ux&nbsp;<-&nbsp;unique(x) &nbsp;&nbsp;ux[which.max(tabulate(match(x,&nbsp;ux)))]}在我的小机器上,它可以在大约半秒钟内生成和找到10m整数向量的模式。如果您的数据集可能有多种模式,则上述解决方案采用的方法与which.max,并返回先出现模式集的值。返回全模式,使用此变体(注释中的@digEmAll):Modes&nbsp;<-&nbsp;function(x)&nbsp;{ &nbsp;&nbsp;ux&nbsp;<-&nbsp;unique(x) &nbsp;&nbsp;tab&nbsp;<-&nbsp;tabulate(match(x,&nbsp;ux)) &nbsp;&nbsp;ux[tab&nbsp;==&nbsp;max(tab)]}

泛舟湖上清波郎朗

有包裹modeest它提供了单变量单峰(有时是多模)数据模式的估计和通常概率分布模式的值。mySamples&nbsp;<-&nbsp;c(19,&nbsp;4,&nbsp;5,&nbsp;7,&nbsp;29,&nbsp;19,&nbsp;29,&nbsp;13,&nbsp;25,&nbsp;19)library(modeest)mlv(mySamples,&nbsp;method&nbsp;=&nbsp;"mfv")Mode&nbsp;(most&nbsp;likely&nbsp;value): &nbsp;19&nbsp;Bickel's&nbsp;modal&nbsp;skewness:&nbsp;-0.1&nbsp; Call:&nbsp;mlv.default(x&nbsp;=&nbsp;mySamples,&nbsp;method&nbsp;=&nbsp;"mfv")有关更多信息,请参见本页

UYOU

在r邮件列表上找到这个,希望它有帮助。这也是我一直在想的。您需要表()数据,对数据进行排序,然后选择名称。这很麻烦,但应该管用。names(sort(-table(x)))[1]
打开App,查看更多内容
随时随地看视频慕课网APP