I am trying to use sqldf to insert rows into an existing (but empty) dataframe and I am getting a strange error.
Here is my code:
set.seed(1)
library(sqldf)
# define empty dataframe
d1 = data.frame(min_x=numeric(), max_x=numeric())
# create a data frame of random numbers
d2 = data.frame(x=runif(10))
# This works fine
sqldf("select min(x), max(x) from d2")
# But, the following statement generates an error
sqldf("insert into d1 select min(x), max(x) from d2")
Here is the output:
Not sure how to fix this. I am running R 3.1.0 on a 64-bit machine using Windows 7.
> set.seed(1)
>
> library(sqldf)
>
> # define empty dataframe
> d1 = data.frame(min_x=numeric(), max_x=numeric())
>
> # create a data frame of random numbers
> d2 = data.frame(x=runif(10))
>
> # This works fine
> sqldf("select min(x), max(x) from d2")
min(x) max(x)
1 0.06178627 0.9446753
>
> # But, the following statement generates an error
> sqldf("insert into d1 select min(x), max(x) from d2")
Error in sqliteExecStatement(con, statement, bind.data) :
RS-DBI driver: (error in statement: no such table: d1)
In addition: Warning message:
In value[[3L]](cond) : bind.data must have non-zero dimensions
>
What am I doing wrong? Thanks in advance.