gpt4 book ai didi

r - 用于 mutate 的 Dplyr 编程模式

转载 作者:行者123 更新时间:2023-12-04 12:06:30 26 4
gpt4 key购买 nike

在函数内部使用 dplyr mutate 时,我一直在使用标准模式。这是一个玩具示例(只是为了证明一点):

myFunction = function(colname) {
dots <- setNames(list(lazyeval::interp(~ifelse(x>25, x*10, x/10), x = quote(colname))), "my_new_col")
mutate_(mtcars, .dots = dots)
}

我已经把它变成了一个函数,而不是每次都输入它。但这相当冗长,我不确定是否有更简单的方法来参数化对 mutate_ 的调用。有什么建议吗?

最佳答案

我假设您的函数正在尝试基于现有列创建一个新列。这是使用 tidyeval 方法的函数。有关详细信息,请参阅 Programming with dplyr

myFunction = function(df, col, new_col) {
col <- enquo(col)
new_col <- quo_name(enquo(new_col))

df %>%
mutate(!!new_col := ifelse((!!col) > 25, (!!col) * 10, (!!col) / 10))
}

myFunction(mtcars, mpg, mpg_based_new_col)

关于r - 用于 mutate 的 Dplyr 编程模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46184566/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com