r-如何定义一个函数,该函数接受类似于names()之类的伪命题之外的参数



今天我遇到了一个问题。正常情况下,R中的每个函数都在其所属范畴内接受自变量,例如

# function definition
f <- function(arg){print(arg)}
# function call
f(arg = 3)

但是,例如,内置函数names()的工作方式不同。你可以这样称呼它:

x = 3
names(x) <- "aNumber"

这似乎很特别,因为值"aNumber"不是作为常规参数分配给函数names()的,而是分配给函数本身的。所以我的问题是如何定义这种类型的函数。

干杯,

Philipp

您可以创建用户定义的中缀运算符,如:

`%x%` <- function(a, b) {a * b}
2 %x% 3
#[1] 6

用户定义的替换/分配功能,如:

`x<-` <- function(x, value) {x * value}
y  <- 2
x(y) <- 3
y
#[1] 6

另请参见:3.4.4子集分配或6.8功能表格。

相关内容

最新更新