[英]Pass an expression as a function argument in R
我正在嘗試編寫一個函數,它接受一個由一個或多個列名組成的表達式,如下所示:
data <- data.frame(a = c(1 , 2 , 3) , b = c(1 , 2 , 3))
beans <- function (data , expr) {
with(data , expr)
}
所需的輸出類似於:
beans(data , expression(a + b))
# [1] 2 4 6
但這反過來了
expression(a + b)
理想情況下,解決方案也允許將單個列用作參數,例如
beans(data , a)
# [1] 1 2 3
你需要eval
(甚至在函數之外):
with(data, eval(expr))
eval(expr, envir = data)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.