R中的众数公式如何工作......?

mzsu5hc0  于 2023-02-06  发布在  其他
关注(0)|答案(1)|浏览(92)

我发现这个公式可以用于R来查找数据集中任何列的模式,它工作吗?

names(sort(-table(mtcars$wt)))[1]

它可用于查找wt列的MODE。
我需要理解这个公式。

wribegjk

wribegjk1#

若要了解整个表达式的作用,您应该单步执行每个组件。

  • table$wt中每个唯一值的出现次数制成表格(计数):
table(mtcars$wt)
# 1.513 1.615 1.835 1.935  2.14   2.2  2.32 2.465  2.62  2.77  2.78 2.875  3.15  3.17  3.19 3.215 3.435  3.44  3.46 
#     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     3     1 
#  3.52  3.57  3.73  3.78  3.84 3.845  4.07  5.25 5.345 5.424 
#     1     2     1     1     1     1     1     1     1     1

注意,$wt的原始“值”存储为返回向量中的名称。

  • sort(-table(.))然后将最频繁的值带到前面(左),将最不频繁的值带到后面(右)。
sort(-table(mtcars$wt))
#  3.44  3.57 1.513 1.615 1.835 1.935  2.14   2.2  2.32 2.465  2.62  2.77  2.78 2.875  3.15  3.17  3.19 3.215 3.435 
#    -3    -2    -1    -1    -1    -1    -1    -1    -1    -1    -1    -1    -1    -1    -1    -1    -1    -1    -1 
#  3.46  3.52  3.73  3.78  3.84 3.845  4.07  5.25 5.345 5.424 
#    -1    -1    -1    -1    -1    -1    -1    -1    -1    -1

对它的负数排序等价于sort(table(.), decreasing=TRUE)

  • names(..)将返回此向量中的原始wt值,按其计数的降序排序。将[1]添加到此值仅返回名称的第一个值。

长话短说:这将返回mtcars$wt中出现次数最多的第一个值。仅供参考,如果有多个值具有相同的计数,则此代码不会指示该条件。

相关问题