gpt4 book ai didi

r - 在 R 函数中调用 "self"作为参数

转载 作者:行者123 更新时间:2023-12-01 23:50:15 24 4
gpt4 key购买 nike

我想知道是否有一种优雅的方式在 R 函数中调用“self”。一个简单的例子是日期的修改,假设 a 是一个 int 格式的日期(就像您从 excel 中读取时一样)。

a = 41557
a = as.Date(a, origin = "1899-12-30")

然后“a”被更新为正确的格式。显然这个例子非常简单,但在长变量或更复杂过程的上下文中,人们会喜欢使用“self”之类的东西。 R 中是否存在类似的东西。Self 只是表示取 = 符号左侧的变量。

a = 41557
a = as.Date(self, origin = "1899-12-30") # what to use for self.

作为第一个提示,我发现(我认为)某些函数可以使用“<-”运算符以某种方式调用“self”,例如:

"minc<-" <- function(x, value){x*value}

给予:

a = 2
a = minc(12)
# a = 24, which is basically : a = self*12

我不知道 R 中是否存在这样的关键字,但它肯定有助于提高我大部分代码的可读性。

一如既往,感谢您的帮助!

罗曼。

最佳答案

您正在寻找的功能已在出色的 magrittr 中实现包裹。 CRAN 上的版本引入了管道运算符,%>% ,它将前面的内容作为后面的第一个参数传递(默认情况下),或替换 .与前面的声明。

关于您的问题,Github 上的版本引入了许多管道变体,包括 %<>%它的工作方式与常规管道一样,但包括覆盖分配。

以下语句是等效的(magrittr 版本 >= 1.1.0,在 Github 上可用,devtools::install_github("smbache/magrittr")):

a = as.Date(a, origin = "1899-12-30")
a = a %>% as.Date(origin = "1899-12-30")
a %<>% as.Date(., origin = "1899-12-30")
a %<>% as.Date(origin = "1899-12-30")

关于r - 在 R 函数中调用 "self"作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26933908/

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