我正在重新实现$<-函数,但是文档没有清楚或明确地说明该函数应该返回什么。实现只是调用.Primitive,但这也依赖于函数的内部实现。
$<-
5jdjgkvh1#
函数应该返回对象的“更新”副本。例如,您可以做一些像这样疯狂的事情(这里 Package 在local中,以不更改$<-的默认行为)
local
local({ `$<-` <- function(x, k, value) { action <- deparse(substitute(k)) if (action == "multiply") { x * value } else if (action == "add") { x + value } } x <- 5 x$multiply <- 2 x$add <- 3 x }) # [1] 13
所以如果你有像x$greeting <- "hello"这样的代码,那么$<-应该在赋值后返回你想要的x。这是将重新分配给x的值这在R语言定义的子集赋值部分有松散的描述
x$greeting <- "hello"
x
1条答案
按热度按时间5jdjgkvh1#
函数应该返回对象的“更新”副本。例如,您可以做一些像这样疯狂的事情(这里 Package 在
local
中,以不更改$<-
的默认行为)所以如果你有像
x$greeting <- "hello"
这样的代码,那么$<-
应该在赋值后返回你想要的x
。这是将重新分配给x
的值这在R语言定义的子集赋值部分有松散的描述