Skip to content
Prev 207519 / 398506 Next

question on sqldf syntax

On Mon, Jan 25, 2010 at 2:17 PM, GL <pflugg at shands.ufl.edu> wrote:
You have to pass it a valid SQL statement but $ is not an SQL
operator.  Also dot (.) is an SQL operator so you have quote
identifiers that contain a dot so that it will not regard those dots
as operators.

Try this:

library(sqldf)

lines1 <- "Date Place
1/1/10 N-01
1/1/10 S-02
1/2/10 N-01
1/2/10 S-02"
dbs.possible.combos <-
   read.table(textConnection(lines1), header = TRUE, as.is = TRUE)

lines2 <- "Date Place Days
1/1/10 N-01 6
1/1/10 S-02 10
1/2/10 S-02 5"
dbs.aggregate <- read.table(textConnection(lines2), header = TRUE, as.is = TRUE)

dbs.final <- sqldf('select Date, Place, Days
	FROM "dbs.possible.combos"
	LEFT JOIN "dbs.aggregate" using (Place, Date)')

Giving:
Date Place Days
1 1/1/10  N-01    6
2 1/1/10  S-02   10
3 1/2/10  N-01   NA
4 1/2/10  S-02    5