On Apr 8, 2010, at 9:20 AM, jim holtman wrote:

You were using read.csv and not read.table. The following seems to work
with using a separator that will probably not appear in the text:

Modified  Jim's version:

df <- data.frame(a = "a\"b", v = 4, z = "this is: A, B, C", stringsAsFactors=FALSE) write.table(df, "test.csv", row.names = FALSE, quote = FALSE, sep='\x01') df2 <-read.table("test.csv", quote = "", sep='\x01', header=TRUE, stringsAsFactors=FALSE)
   a v                z
1 a"b 4 this is: A, B, C


It also works if you create and read them as character vectors with ... , stringsAsFactors=FALSE) although the '"' now gets displayed at the console with an escape since it is not a level label.

> df2$a
[1] "a\"b"

--
David.


On Thu, Apr 8, 2010 at 9:07 AM, Hadley Wickham <had...@rice.edu> wrote:

df <- data.frame(a = "a\"b", v = 4, z = "this is Z")
write.csv(df, "test.csv", row.names = FALSE, quote = FALSE)
read.csv("test.csv", quote = "")

Unfortunately my real example is more like:

df <- data.frame(a = "a\"b", v = 4, z = "this is: A, B, C")

so quote = F won't work.

Can write.table and read.table really be so asymmetric?

Hadley


--
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem that you are trying to solve?

David Winsemius, MD
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