[R] Dividing one column of form xx-yy into two columns, xx and yy

Gabor Grothendieck ggrothendieck at gmail.com
Tue Feb 9 03:19:51 CET 2010


If you are willing to use an outside utility, tr, and you are using
UNIX then you can pipe the input through it so read.csv sees all the
dashes as commas:

> cat("A,B-C,D
+ 1,2-3,4
+ 5,6-7,8
+ ", file = "dashcomma.dat")
>
> read.csv(pipe("tr - , < dashcomma.dat"))
  A B C D
1 1 2 3 4
2 5 6 7 8

On Windows tr is available from Duncan Murdoch's Rtools distribution.
(google to find it).



On Mon, Feb 8, 2010 at 6:31 PM, ZeMajik <zemajik at gmail.com> wrote:
> I have a data set where one column consists of two numerical factors,
> separated by a "-".
> So my data looks something like this:
>
> 43-156
> 43-43
> 1267-18
> .
> .
> .
>
> There are additional columns consisting of single factors as well, so
> reading the csv file (where the data is stored) with the sep="-" addition
> won't work since the rest of the factors are separated by commas.
> So first of all, is there any way to import a file which is separated by ","
> OR "-"?
>
> If this is not possible, does anyone have any ideas how I could go about to
> separate these? I could use a text editor to replace the - with , and
> import, but I would prefer doing this inside of R so that making a script
> could be used in the future.
>
> Just to clarify, I would like the above to turn out as two separate columns
> (or vectors) where the first in this would be (43,43,1267,....) and the
> second (156,43,18,.....)
> The dataset is rather large, with a few hundred thousand lines, so it would
> be preferable to keep resource intensive methods to a minimum if possible.
>
> Thanks in advance!
> Mike
>
>        [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list