簡體   English   中英

如何在R中訪問函數名稱?

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

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