[Rd] Improving string concatenation

Joshua Bradley jgbradley1 at gmail.com
Wed Jun 17 07:25:21 CEST 2015


Bad choice of words I'm afraid. What I'm ultimately pushing for is a
feature request. To allow string concatenation with '+' by default. Sure I
can write my own string addition function (like the example I posted
previously) but I use it so often that I end up putting it in every script
I write.

It is ultimately a matter of readability and syntactic sugar I guess. As an
example, I work in the bioinformatics domain and write R scripts for
pipelines with calls to various programs that require a lot of parameters
to be set/varied. Seeing "paste" everywhere detracts from reading the code
(in my opinion).

This may not be a very strong argument, but to give a bit more objective
reason, I claim its more readable/intuitive because other big languages
have also picked up this convention (C++, java, javascript, python, etc.).


Josh Bradley
Graduate Student
University of Maryland

On Tue, Jun 16, 2015 at 11:00 PM, Gabriel Becker <gmbecker at ucdavis.edu>
wrote:

>
> On Jun 16, 2015 3:44 PM, "Joshua Bradley" <jgbradley1 at gmail.com> wrote:
> >
> > Hi, first time poster here. During my time using R, I have always found
> > string concatenation to be (what I feel is) unnecessarily complicated by
> > requiring the use of the paste() or similar commands.
>
> I don't follow. In what sense is paste complicated to use? Not in the
> sense of it's actual behavior, since what you propose below has identical
> behavior. So is your objection simply the number of characters one must
> type?
>
> I would argue that having a separate verb makes code much more readable,
> particularly at a quick glance. I know a character will come out of paste
> no matter what goes in. That is not without value from a code maintenance
> perspective. IMHO.
>
> ~G
>
> >
> >
> > When searching for how to concatenate strings in R, several top search
> > results show answers that say to write your own function or override the
> > '+' operator.
> >
> > Sample code like the following from this
> > <
> http://stackoverflow.com/questions/4730551/making-a-string-concatenation-operator-in-r
> >
> > page
> >
> > "+" = function(x,y) {
> >     if(is.character(x) & is.character(y)) {
> >         return(paste(x , y, sep=""))
> >     } else {
> >         .Primitive("+")(x,y)
> >     }}
> >
> >
> >
> > An old (2005) post
> > <https://stat.ethz.ch/pipermail/r-help/2005-February/066709.html> on
> r-help
> > mentioned possible performance reasons as to why this type of string
> > concatenation is not supported out of the box but did not go into detail.
> > Can someone explain why such a basic task as this must be handled by
> > paste() instead of just using the '+' operator directly? Would
> performance
> > degrade much today if the '+' form of string concatenation were added
> into
> > R by default?
> >
> >
> >
> > Josh Bradley
> >
> >         [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-devel at r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-devel
>

	[[alternative HTML version deleted]]



More information about the R-devel mailing list