[英]How do I access function names in R?
我正在編寫一個接收兩個參數的函數:一個數據框和一個函數,並且在處理完數據框后,使用函數參數(例如,mean,sd,...)對其進行匯總。 我的問題是,如何獲取作為參數接收的函數的名稱?
怎么樣:
f <- function(x) deparse(substitute(x))
f(mean)
# [1] "mean"
f(sd)
# [1] "sd"
do.call
可能就是您想要的。 您可以獲取一個函數名稱作為字符值,然后將該函數名稱和參數list
傳遞給do.call
進行求值。 例如:
X<-"mean"
do.call(X,args=list(c(1:5)) )
[1] 3
也許我誤解了這個問題,但是似乎您可以簡單地將函數名稱作為參數,然后像正常函數一樣對函數求值。 這種方法對我來說很好。 省略號用於為您所關注的功能添加參數。
myFunc=function(data,func,...){return(func(data,...))}
myFunc(runif(100), sd)
而且,如果您想將其應用於data.frame
每一列或每一行,則可以在myFunc
簡單地使用一條apply語句。
這里是我的嘗試,也許,你想同時返回結果和函數的名稱:
y <- 1:10
myFunction <- function(x, param) {
return(paste(param(x), substitute(param)))
}
myFunction(y, mean)
# [1] "5.5 mean"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.