On Dec 12, 2009, at 12:01 PM, Marianne Promberger wrote:

Thanks for both replies.

Let me start by giving a better minimal example, although indeed the
regex replacement is not my problem.

system("echo \"var1,var2,var3\none,two,three\none,this is a comment,with commas.,three\" > file.csv")

On 12/12/09 11:02, David Winsemius wrote:

You need to figure out how to do multiple replacements unless it is
only the first comma that you are targeting:

readLines(pipe("sed -e 's/,/;/' ~/file.csv"))
[1] "one;two,three"

Lovely. What I really need is read.csv and this works (with my "good
enough for the existing data; will optimize later as needed" regex):

I didn't post  a read.csv versions thought the application was obvious.

read.csv(pipe("sed -e 's/\\( [a-zA-Z]\\+\\),/\\1;/g' file.csv"))

I can't understand that I didn't try this. I think what I tried was
pipe( ... file.csv |") (with a Unix pipe symbol a the end)

Thanks!

Jon Baron <ba...@psych.upenn.edu> 12-Dec-09 16:21:
gsub(readLines("file.csv"),",",";")

Using gsub would be even neater, as it would really be self-contained
in R.

gsub("( [A-Za-z]+),","\\1;",readLines("file.csv"))

> txt <- gsub("( [A-Za-z]+),","\\1;",readLines("file.csv"))
> read.csv(textConnection(txt), header=TRUE)
  var1                           var2  var3
1  one                            two three
2  one this is a comment;with commas. three


seems to work fine, but how to get this into a data frame?

Marianne

--
Marianne Promberger PhD, King's College London
http://promberger.info
R version 2.10.0 (2009-10-26)
Ubuntu 9.04

David Winsemius, MD
Heritage Laboratories
West Hartford, CT

______________________________________________
R-help@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.

Reply via email to