gpt4 book ai didi

r - R 中的替换函数是什么?

转载 作者:行者123 更新时间:2023-12-03 06:10:38 24 4
gpt4 key购买 nike

我搜索了有关 R 中替换函数的引用资料,但尚未找到。我试图理解 R 中替换函数的概念。我有下面的代码,但我不明白它:

"cutoff<-" <- function(x, value){
x[x > value] <- Inf
x
}

然后我们调用 cutoff:

 cutoff(x) <- 65

谁能解释一下 R 中的替换函数是什么?

最佳答案

当你打电话时

cutoff(x) <- 65

您实际上正在调用

x <- "cutoff<-"(x = x, value = 65)

函数的名称必须加引号,因为它是语法上有效但非标准的名称,解析器将解释 <-如果没有引用,则作为运算符不作为函数名称的一部分。

"cutoff<-"()就像任何其他函数一样(尽管名称很奇怪);它根据 value 更改其输入参数(在本例中,它将 x 中大于 65 的任何值设置为 Inf (无限))。

当你像这样调用函数时,魔法就真正发挥了

cutoff(x) <- 65

因为 R 正在解析它并提取各个位以进行上面所示的实际调用。

更一般地说,我们有

FUN(obj) <- value

R 找到函数 "FUN<-"()并通过传递 obj 来设置调用和value进入"FUN<-"() 排列 "FUN<-"() 的结果被分配回obj ,因此它调用:

obj <- "FUN<-"(obj, value)

此信息的有用引用是 R Language Definition Section 3.4.4: Subset assignment ;讨论有点拐弯抹角,但似乎是最官方的引用(R FAQ 中提到了替换函数(R 和 S-PLUS 之间的差异),以及 R 语言引用(各种技术问题),但我在官方文档中没有找到任何进一步的讨论)。

关于r - R 中的替换函数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11563154/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com