[R] exporting long character vectors to dbf
Eduardo Leoni
e.leoni at gmail.com
Thu May 25 07:25:42 CEST 2006
I am trying to use RODBC, but still run into some problems. If I
understood correctly, I have to change the default type for char
vectors to "text" (or varchar(3000)). But when I try something like
>library(RODBC)
>channel <- odbcConnect("supremo", uid="R", case="tolower")
>setSqlTypeInfo("MySQL",
list(double="double",
integer="integer",
character="varchar(3000)",
logical="varchar(5)"))
Warning message:
number of items to replace is not a multiple of replacement length
I think there is a pair of brackets missing in setSqlTypeInfo here
typesR2DBMS[driver] <- value[c("double", "integer", "character",
"logical")]
by the way, is there any easy way to debug packages that does not
involve reapeatedly modifying, compiling and installing them again??
On 5/24/06, Prof Brian Ripley <ripley at stats.ox.ac.uk> wrote:
> On Wed, 24 May 2006, Mulholland, Tom wrote:
>
> > I assume this is (or was) a specification issue. I think write.dbf uses
> > the shapefile library (C not R library) so it applies to the use of
> > shapefiles and just happens to have been included in the foreign package
> > because it has a generic usefullness. (Is that a word?)
>
> Actually, the width of the dbf field comes from the lines in write.dbf:
>
> else if (is.character(x)) {
> mf <- max(nchar(x[!is.na(x)]))
> precision[i] <- min(max(nlen, mf), 254)
> scale[i] <- 0
>
> so that's the limit (254, not 255). This is stated as a limitation of the
> dbf format at
> http://www.clicketyclick.dk/databases/xbase/format/data_types.html
> so I don't think you can do what you want with .dbf.
>
> > Since I very rarely care about the elegance of my solutions, just that
> > they work, I would try saving the file in another format that you can
> > get open office to read and let it do the conversion rather than trying
> > to get R to do it. I'm sure OpenOffice can deal with straightforward
> > text files if that's a last resort.
>
> Indeed. Using an ODBC driver (and RODBC) to write to the database might
> be a good option.
>
> >
> > Tom
> >
> >> -----Original Message-----
> >> From: r-help-bounces at stat.math.ethz.ch
> >> [mailto:r-help-bounces at stat.math.ethz.ch]On Behalf Of Eduardo Leoni
> >> Sent: Wednesday, 24 May 2006 7:13 AM
> >> To: r-help at stat.math.ethz.ch
> >> Subject: [R] exporting long character vectors to dbf
> >>
> >>
> >> Hi -
> >>
> >> I need to export data to openoffice base, where one of the elements is
> >> a long character vector (>255 characters.) write.dbf exports it as
> >> varchar, truncating the data. Any idea how to do this?
> >>
> >> thanks,
> >>
> >> -eduardo
> >>
> >> ______________________________________________
> >> R-help at 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
> >>
> >
> > ______________________________________________
> > R-help at 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
> >
>
> --
> Brian D. Ripley, ripley at stats.ox.ac.uk
> Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
> University of Oxford, Tel: +44 1865 272861 (self)
> 1 South Parks Road, +44 1865 272866 (PA)
> Oxford OX1 3TG, UK Fax: +44 1865 272595
>
More information about the R-help
mailing list