簡體   English   中英

將表達式作為R中的函數參數傳遞

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM