r - R中的操作重载

标签 r string concatenation string-concatenation

这个问题在这里已经有了答案:





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/

相关文章:

r - 如何使用 ggplot 创建并排条形图(用于多个系列)?

从 StringBuilder 进行 toString 转换的 Java 替代品

string - 翻译字符串postgres

MySQL ORDER BY 似乎按十六进制排序而不是按字母顺序排序

python - 将列添加到二维列表

mysql - 检查多个列是否存在串联匹配 MySQL

r - 数字变量和逻辑变量之间的相关性会产生(预期的)错误吗?

r - 如何替换嵌套的 for 循环?

java - 不使用正则表达式从随机字符串返回所有整数的总和

R插入符火车glmnet最终模型lambda值不符合指定