По умолчанию оператор канала %>%
передает имя входной переменной в виде точки "."
следующей функции, но вы можете управлять выводом из оператора канала lhs
, чтобы вместо этого передать вам фактическое имя входной переменной. точки в вашей функции. См. Ниже функцию (отредактированную для работы с / без %>%
)
myfun <- function(x) {
x <- substitute(x)
if (x !="."){
print(deparse(x))
}else{
i <- 1
while(!("chain_parts" %in% ls(envir=parent.frame(i))) && i < sys.nframe()) {
i <- i+1
}
ee <- parent.frame(i)
print(deparse(ee$lhs))
}
}
mean %>% myfun()
[1] "mean"
myfun(mean)
[1] "mean"
Надеюсь, это поможет. -Ахмед Альхенди