【发布时间】:2023-02-05 01:21:09
【问题描述】:
我发现此公式可用于 R 查找数据集中任何列的模式,它是否有效...??
names(sort(-table(mtcars$wt)))[1]
它可用于查找 wt 列的模式。
我需要理解这个公式。
【问题讨论】:
我发现此公式可用于 R 查找数据集中任何列的模式,它是否有效...??
names(sort(-table(mtcars$wt)))[1]
它可用于查找 wt 列的模式。
我需要理解这个公式。
【问题讨论】:
要了解整个表达式的作用,您应该单步执行每个组件。
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 中出现次数最多的第一个值。仅供参考,如果有多个值具有相同的计数,则此代码不会指示该情况。
【讨论】: