[R-sig-DB] [R] SQLite: When reading a table, a "\r" is padded onto the last column. Why?

ronggui ronggu|@hu@ng @end|ng |rom gm@||@com
Thu Jan 4 02:22:23 CET 2007


On 1/4/07, Seth Falcon <sfalcon using fhcrc.org> wrote:
> Prof Brian Ripley <ripley using stats.ox.ac.uk> writes:
> > [I am not sure who is actually maintaining RSQLite, so am Cc: both the
> > stated maintainer and the person who prepared the package for
> > distribution. The posting guide asked you to contact the maintainer:
> > what response did _you_ get?]
>
> For the record, I will be (have been) taking on the maintainer role
> for RSQLite.  The Maintainer field will be updated in the next
> version.
>
> As to the '\r' problem, a release candidate RSQLite 0.4-17 is
> available here:
>
>     http://bioconductor.org/packages/misc/
>
> This version uses prepared queries to implement dbWriteTable.  This
> should resolve the '\r' issue on Windows and should also be
> considerably more efficient.  Soren, can you give this one a try and
> let me know if it works for you?

When write a data frame to db table, the problem of "\r" is fixed. But
for importing data frome file, the problem is still there. When if the
final line lacks the eol sign "\n", "\001x\001(" comes up.

> dbWriteTable(con,"test","c:/test.txt",sep="\t",head=T,over=T,eol="\n")
[1] TRUE
Warning message:
incomplete final line found by readTableHeader on 'c://test.txt'
> dbReadTable(con,"test")
  a           b
1 1         2\r
2 3          \r
3 1         3\r
4 0 5\001x\001(
> dbWriteTable(con,"test","c:/test.txt",sep="\t",head=T,over=T,eol="\n")
[1] TRUE
> dbReadTable(con,"test")
  a   b
1 1 2\r
2 3  \r
3 1 3\r
4 0 5\r
>   data(USArrests)
>         dbWriteTable(con, "USArrests", USArrests, overwrite = T)
[1] TRUE
> dbReadTable(con, "USArrests")
               Murder Assault UrbanPop Rape
Alabama          13.2     236       58 21.2
Alaska           10.0     263       48 44.5
Arizona           8.1     294       80 31.0
Arkansas          8.8     190       50 19.5
California        9.0     276       91 40.6
Colorado          7.9     204       78 38.7


> sessionInfo()
R version 2.4.0 Patched (2006-11-21 r39949)
i386-pc-mingw32

locale:
LC_COLLATE=Chinese_People's Republic of
China.936;LC_CTYPE=Chinese_People's Republic of
China.936;LC_MONETARY=Chinese_People's Republic of
China.936;LC_NUMERIC=C;LC_TIME=Chinese_People's Republic of China.936

attached base packages:
[1] "stats"     "graphics"  "grDevices" "utils"     "datasets"  "methods"
[7] "base"

other attached packages:
 RSQLite      DBI
"0.4-17" "0.1-11"

> Recent work on RSQLite has focused on integrating SQLite3's type
> system into the interface.  We now rely on the column type in the DB
> when retrieving results.  Previously, type.convert was used.  I'm
> fairly certain these changes will result in changes in behavior -- in
> most cases, I think the changes are for the better.
>
> + seth
>
> ______________________________________________
> R-help using stat.math.ethz.ch 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.
>


-- 
Ronggui Huang
Department of Sociology
Fudan University, Shanghai, China
黄荣贵
复旦大学社会学系




More information about the R-sig-DB mailing list