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

Ben Bolker <[email protected]>
Newsgroups gmane.comp.lang.r.general
Message-ID <[email protected]>
   Or set quote = TRUE (OP is using delim="\t" to export a tab-separated 
file ...

On 9/14/25 14:05, Bert Gunter wrote:
> 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
> <[email protected]> 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
>>
>> ______________________________________________
>> [email protected] 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.
> 
> ______________________________________________
> [email protected] 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.

-- 
Dr. Benjamin Bolker
Professor, Mathematics & Statistics and Biology, McMaster University
Associate chair (graduate), Mathematics & Statistics
Director, School of Computational Science and Engineering
* E-mail is sent at my convenience; I don't expect replies outside of 
working hours.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.