[R] sqldf() difference between R 3.1.2 and 3.0.1
Doran, Harold
HDoran at air.org
Wed Feb 11 15:45:17 CET 2015
I have a function written and tested using R 3.0.1 and sqldf_0.4-7.1 that works perfectly. However, using this same code with R 3.1.2 and sqldf_0.4-10 yields the error below that I am having a difficult time deciphering. Hence, same code behaves differently on different versions of R and sqldf().
Error in sqliteSendQuery(con, statement, bind.data) :
error in statement: no such column: V1
Reproducible example below as well as complete sessionInfo all provided below.
My function and code using the function are below.
dorReader <- function(dorFile, layout, sepChar = '\n'){
sepChar <- as.character(sepChar)
dorFile <- as.character(dorFile)
layout$type2 <- ifelse(layout$type == 'C', 'character',
ifelse(layout$type == 'N', 'numeric', 'Date'))
dor <- file(dorFile)
attr(dor, "file.format") <- list(sep = sepChar)
getVars <- paste("select",
paste("substr(V1, ", layout$Start, ", ",
layout$Length, ") '", layout$Variable.Name, "'", collapse = ", "), "from dor")
dat <- sqldf(getVars)
classConverter <- function(obj, types){
out <- lapply(1:length(obj),FUN = function(i){FUN1 <- switch(types[i],character = as.character,numeric = as.numeric,factor = as.factor, Date = as.character); FUN1(obj[,i])})
names(out) <- colnames(obj)
as.data.frame(out)
}
dat <- classConverter(dat, layout$type2)
names(dat) <- layout$Variable.Name
dat
}
### contents of fwf file 'sample.txt'
1234567
1234567
1234567
1234567
1234567
1234567
1234567
1234567
layout <- data.frame("Variable.Name" =c('test1', 'test2'), "Length" = c(3,4), "Start" =c(1,4), "End" = c(3,7), "type" = c('N', 'N'))
tmp <- dorReader('sample.txt', layout)
### SessionInfo where functions behaves as expected
> sessionInfo()
R version 3.0.1 (2013-05-16)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C LC_TIME=English_United States.1252
attached base packages:
[1] tcltk stats graphics grDevices utils datasets methods base
other attached packages:
[1] sqldf_0.4-7.1 RSQLite.extfuns_0.0.1 RSQLite_0.11.4 DBI_0.2-7 gsubfn_0.6-5
[6] proto_0.3-10 MiscPsycho_1.6 statmod_1.4.18
loaded via a namespace (and not attached):
[1] chron_2.3-45 tools_3.0.1
### SessionInfo for version not working
> sessionInfo()
R version 3.1.2 (2014-10-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] tcltk stats graphics grDevices utils datasets methods base
other attached packages:
[1] sqldf_0.4-10 RSQLite_1.0.0 DBI_0.3.1 gsubfn_0.6-6 proto_0.3-10
loaded via a namespace (and not attached):
[1] chron_2.3-45 tools_3.1.2
[[alternative HTML version deleted]]
More information about the R-help
mailing list