[R] trouble with exporting a data.frame with " (quotation mark) in some columns into a tab delimited file, then importing the file

Jeff Newmiller jdnewm|| @end|ng |rom dcn@d@v|@@c@@u@
Sun Sep 14 22:18:22 CEST 2025


Yeah, _that_ will be educational. read.csv is quite brief... but you may want to read [1] first.

[1] https://adv-r.hadley.nz/

On September 14, 2025 12:28:12 PM PDT, Patrick Giraudoux <patrick.giraudoux using univ-fcomte.fr> wrote:
>Fantastic Bert ! It works perfect. Now I will dig in a bit to understand 
>how write.csv works...
>
>Thank you,
>
>Patrick
>
>Le 14/09/2025 à 20:05, Bert Gunter a écrit :
>> See ?write.table  documentation for "qmethod", which needs to be set
>> to "double" to write the data correctly for csv. This is most easily
>> done by using read.csv and write.csv, for which this is the default.
>> Ergo, the following :
>>
>> (using your example)
>>
>>> write.csv(db, file = "test", row.names = FALSE)
>> ## Note: Set row.names = FALSE so an extra column of numeric row names
>> won't be added.
>>> db2 <- read.csv("test") ## read it back in
>>> identical(db2, db)
>> [1] TRUE
>>
>> Apologies if I have misunderstood and this does not solve your problem.
>>
>> Cheers,
>> Bert
>>
>>
>> On Sun, Sep 14, 2025 at 10:46 AM Patrick Giraudoux
>> <patrick.giraudoux using univ-fcomte.fr> wrote:
>>> Dear listers, previous plain text was still more messy,
>>>
>>> Here a trial hopefully better...
>>>
>>> I encountered an issue with a CSV file that was imported correctly but
>>> could not be re-imported correctly after being written with R. This is
>>> probably because geographical coordinates were imported  as character in
>>> degrees, minutes and seconds (DMS), which includes " (quotation mark)
>>> for the seconds.
>>>
>>> Below a reproducible example:
>>>
>>> db <- structure(list(lon = c(6.228561, 6.22532, 6.2260499999999999,
>>> 6.2267789999999996, 6.2224659999999998, 6.2209430000000001), latdms =
>>> c("47°12'28.36\"N", "47°12'33.46\"N", "47°12'28.37\"N",
>>> "47°12'27.48\"N", "47°12'31.31\"N", "47°12'33.15\"N"), londms =
>>> c("6°13'42.82\"E", "6°13'31.15\"E", "6°13'33.78\"E", "6°13'36.40\"E",
>>> "6°13'20.88\"E", "6°13'15.39\"E"), fusutmn = c(32L, 32L, 32L, 32L, 32L,
>>> 32L)), row.names = c(NA, 6L), class = "data.frame")
>>>
>>>   > db
>>>
>>> write.table(db, file = "db.txt", row.names = FALSE, quote = FALSE, sep =
>>> "\t")
>>>
>>> db_import<-read.delim("db.txt")
>>>
>>>   > db_import
>>>
>>>
>>> As you can see it, latdms and londms are now collapsed and all the
>>> columns on the right  have shifted to the left. I get the same issue
>>> with ; as a separator.
>>>
>>>
>>> I could not find a workaround...
>>>
>>> Any hint appreciated,
>>>
>>> Patrick
>>>
>>> ______________________________________________
>>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> PLEASE do read the posting guidehttps://www.R-project.org/posting-guide.html
>>> and provide commented, minimal, self-contained, reproducible code.
>	[[alternative HTML version deleted]]
>
>______________________________________________
>R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>https://stat.ethz.ch/mailman/listinfo/r-help
>PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
>and provide commented, minimal, self-contained, reproducible code.

-- 
Sent from my phone. Please excuse my brevity.



More information about the R-help mailing list