重载字符“+”的最直接方法是什么?
我已经定义了'%+%' <- function(...) paste(...,sep="")
:
str <- "aa"%+%"bb"%+%"cc" #str="aabbcc"
但我不喜欢这种语法。我认为str <- "aa"+"bb"+"cc"
会更好。
(我正在构建长 SQL 查询以与 RODBC 一起使用,这是通常的做法paste
在这种情况下不太方便。有什么建议么?)
你可以尝试这样的事情:
R> oldplus <- `+`
R> `+` <- function(e1, e2) {
R> if (is.character(e1) && is.character(e2)) {
R> paste(e1,e2,sep="")
R> }
R> else {
R> oldplus(e1,e2)
R> }
R> }
这使 :
R> 2+3
[1] 5
R> "aa"+"bb"
[1] "aabb"
但正如 Sacha 指出的,重载这样的基本函数是非常危险的,我不能向你保证它不会破坏你的 R 会话并使你的计算机爆炸:-)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)