[R] trouble with exporting a data.frame with " (quotation mark) in some columns into a tab delimited file, then importing the file
Ben Bolker
bbo|ker @end|ng |rom gm@||@com
Sun Sep 14 21:01:14 CEST 2025
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
> <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 guide https://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>
> ______________________________________________
> 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.
--
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.
More information about the R-help
mailing list