【发布时间】:2023-03-15 15:41:01
【问题描述】:
我在@jared_mamrot Make a custom function of an dplyr procedure 的帮助下创建了这个自定义函数
它基本上需要一个数据框、一个列和一个数字作为参数,并用 NA 替换该列中定义的百分比 (y) 值:
my_func <- function(df,x,y){
df %>%
mutate({{x}} := replace({{x}}, sample(row_number(),
size = ceiling(y * n()), replace = FALSE), NA))
}
现在我想使用mutate(across...将此函数应用于多个列
我目前的尝试:
mtcars %>%
mutate(across(1:3, ~my_func(mtcars, ., 0.3)))
这基本上完成了函数应该做的事情,但整个数据帧重复了 x 次。
我想要的是:
该函数应仅应用于 1:3 列。
添加.names = 参数并不能解决问题。
所以我想我必须修改函数?
【问题讨论】: