这个问题在这里已经有了答案:
Making a string concatenation operator in R
(5 个回答)
7年前关闭。
为字符重载“+”的最直接方法是什么?
我已经定义了 '%+%' <- function(...) paste(...,sep="")
:
str <- "aa"%+%"bb"%+%"cc" #str="aabbcc"
但我不喜欢语法。我想
str <- "aa"+"bb"+"cc"
会更好。(我正在构建与 RODBC 一起使用的长 SQL 查询,通常的
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 session 并使你的计算机爆炸:-)
关于r - R中的操作重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5322546/