我正在尝试创建 pipe-friendly functions使用 magrittr
例如,我尝试编写一个自定义函数来计算列的平均值:
library(magrittr)
custom_function <-
function(.data, x) {
mean(.data$x)
}
mtcars %>%
custom_function(mpg)
但是我收到了这个错误:
Error in (function(x, i, exact) if (is.matrix(i)) as.matrix(x)[[i]] else .subset2(x, :
object 'mpg' not found
也许我对变量的引用不起作用。我该如何修复这个 .data$x
?
最佳答案
.data$x
不是指名称保存在变量 x
中的列,而是指名为 "x"
的列>。使用 .data[[x]]
引用名称为变量 x
中保存的字符串的列,并使用字符串 "mpg"调用您的函数
。
library(magrittr)
custom_function <- function(.data, x) mean(.data[[x]])
mtcars %>% custom_function("mpg")
## [1] 20.09062
关于r - 如何编写自定义管道友好函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65441055/