R语言 函数`$< -`的返回值是什么?

u7up0aaq  于 2023-06-27  发布在  其他
关注(0)|答案(1)|浏览(106)

我正在重新实现$<-函数,但是文档没有清楚或明确地说明该函数应该返回什么。实现只是调用.Primitive,但这也依赖于函数的内部实现。

5jdjgkvh

5jdjgkvh1#

函数应该返回对象的“更新”副本。例如,您可以做一些像这样疯狂的事情(这里 Package 在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语言定义的子集赋值部分有松散的描述

相关问题