R中的操作重载[重复]

2023-12-02

重载字符“+”的最直接方法是什么? 我已经定义了'%+%' <- 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(使用前将#替换为@)

R中的操作重载[重复] 的相关文章

随机推荐