On Apr 8, 2010, at 10:01 AM, Hadley Wickham wrote:

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

write() is a wrapper for cat() and read() is a wrapper for scan() so the question should really be can cat() and scan() be so asymmetric. Looking at their help pages, I would say that at least some degree of asymmetry is plausible. Perhaps using save() with load() , or dput() with dget(), which
are pairings that promise to have symmetry?

Why should I have to care about the internal implementation details?
This is one of the things that really frustrates me (and other new
users of R) - read.table/write.table and read.csv/write.csv are named
symmetrically, but do not work symmetrically.

I hope you won't take it amiss if I think it's great that you (in particular) get frustrated. You have already turned frustrations in other areas into productivity tools. I do have one further observation on this one that extends my earlier suggestion regarding the fact that this semi-strange behavior was a factor-type related issue of asymmetry rather than a character-type one:

> df <- data.frame(a = "a\"b", v = 4, z = "this is: A, B, C", stringsAsFactors=FALSE)
> write.csv(df, "test.csv", row.names = FALSE)
> df2<- read.csv("test.csv",  header=TRUE, stringsAsFactors=FALSE)
> df2
    a v                z
1 a"b 4 this is: A, B, C
> df2$a
[1] "a\"b"

Might I inquire if anyone know why displaying the dataframe version of the "a" element is different on the console from the vector version? I think it related to this behavior:

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




Hadley


--
Assistant Professor / Dobelman Family Junior Chair
Department of Statistics / Rice University
http://had.co.nz/

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