我发现这个公式可以用于R来查找数据集中任何列的模式,它工作吗?
names(sort(-table(mtcars$wt)))[1]
它可用于查找wt列的MODE。我需要理解这个公式。
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)。
sort(table(.), decreasing=TRUE)
names(..)
wt
[1]
长话短说:这将返回mtcars$wt中出现次数最多的第一个值。仅供参考,如果有多个值具有相同的计数,则此代码不会指示该条件。
mtcars$wt
1条答案
按热度按时间wribegjk1#
若要了解整个表达式的作用,您应该单步执行每个组件。
table
将$wt
中每个唯一值的出现次数制成表格(计数):注意,
$wt
的原始“值”存储为返回向量中的名称。sort(-table(.))
然后将最频繁的值带到前面(左),将最不频繁的值带到后面(右)。对它的负数排序等价于
sort(table(.), decreasing=TRUE)
。names(..)
将返回此向量中的原始wt
值,按其计数的降序排序。将[1]
添加到此值仅返回名称的第一个值。长话短说:这将返回
mtcars$wt
中出现次数最多的第一个值。仅供参考,如果有多个值具有相同的计数,则此代码不会指示该条件。