Overloading Ampersand & operator in R

前端 未结 2 977
小鲜肉
小鲜肉 2021-01-22 10:14

I like to overload my ampersand operator with paste. So that way I can paste stuff easily. Like this:

R> \"Hello\" & \" World\"
 [1] \"Hello World\"
         


        
2条回答
  •  一个人的身影
    2021-01-22 10:53

    You'll need to use the S3 object system in R:

    `&` <- function(e1, e2) UseMethod("&", c(e1, e2))
    `&.default` <- function(e1, e2) paste(e1, e2)
    `&.logical` <- function(e1, e2) .Primitive("&")(e1, e2)
    

    Now you can use & as you would expect:

    > 1 & 2
    [1] "1 2"
    > TRUE & FALSE
    [1] FALSE
    > "Hello" & "World"
    [1] "Hello World"
    > 
    

提交回复
热议问题