gpt4 book ai didi

string - 在 R 中制作字符串连接运算符

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

我想知道如何在 R 中编写字符串连接运算符,例如 ||在 SAS 中、在 Java/C# 中为 + 或在 Visual Basic 中为 &。

最简单的方法是使用 % 创建一个特殊的运算符,例如

`%+%` <- function(a, b) paste(a, b, sep="")

但这会导致代码中出现很多难看的 %

我注意到 + 是在 Ops 组中定义的,您可以为该组编写 S4 方法,所以也许类似的方法就是可行的方法。但是,我对 S4 语言功能完全没有经验。我如何修改上述函数以使用 S4?

最佳答案

正如其他人提到的,您不能覆盖密封的 S4 方法“+”。但是,您不需要定义一个新类来定义字符串的加法函数;只需定义一个新类即可。这并不理想,因为它迫使您转换字符串类,从而导致更丑陋的代码。相反,我们可以简单地覆盖“+”函数:

"+" = function(x,y) {
if(is.character(x) || is.character(y)) {
return(paste(x , y, sep=""))
} else {
.Primitive("+")(x,y)
}
}

然后以下内容应该按预期工作:

1 + 4
1:10 + 4
"Help" + "Me"

这个解决方案感觉有点像黑客,因为您不再使用正式方法,但它是获得您想要的确切行为的唯一方法。

关于string - 在 R 中制作字符串连接运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4730551/

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