我正在尝试编写一个 tidyeval 函数,该函数采用数字列,将高于某个值limit
的值替换为 的值limit
,将该列转换为一个因子,然后将因子级别替换为limit
一个名为“limit+”的级别。
例如,我试图用 3 替换 sepal.width 中大于 3 的任何值,然后将该因子级别重命名为3+
.
作为一个例子,这就是我试图使它与 iris 数据集一起工作的方式。不过,fct_recode() 函数没有正确重命名因子级别。
plot_hist <- function(x, col, limit) {
col_enq <- enquo(col)
x %>%
mutate(var = factor(ifelse(!!col_enq > limit, limit,!!col_enq)),
var = fct_recode(var, assign(paste(limit,"+", sep = ""), paste(limit))))
}
plot_hist(iris, Sepal.Width, 3)