【发布时间】:2018-07-18 22:57:54
【问题描述】:
我希望能够在使用 dplyr 的管道结构时找到数据集中某个因子中出现频率最高的级别。当被另一个变量分组时,我正在尝试创建一个包含“模态”因子级别的新变量。
这是我正在寻找的示例:
df <- data.frame(cat = stringi::stri_rand_strings(100, 1, '[A-Z]'), num = floor(runif(100, min=0, max=500)))
df <- df %>%
dplyr::group_by(cat) %>%
dplyr::mutate(cat_mode = Mode(num))
“模式”是我正在寻找的功能
【问题讨论】:
-
模式确定很困难,而且问题多多,当数据不是完全单峰时会加剧。您是在寻找数学模式(带平滑)还是最常出现的模式?
-
我正在寻找最频繁出现的具有很少级别的分类变量 (7)
-
如果 Psidom 的回答不够好,如果您提供此示例数据的预期结果,将会有所帮助。由于您使用的是随机数据,因此您需要使用
set.seed修改您的问题以使其可重现。 -
如果您的变量已经是
factor,您也许可以利用forcats::fct_infreq()