##SQL的好处来自于将数据库托管在远程位置。这样你不需要保存在本地内存中数据库,你可以在SQL数据库上执行操作只有获取你所认为是有用的。
#安装RSQLite和DBI包
library(RSQLite)
library(DBI)
```
```{r}
#建立一个连接对象
dbcon = dbConnect(SQLite(), dbname = "/Users/katherine/Desktop/stat240\ sol/project.sqlite")
#查看是否连接到数据库,如果连接到数据库,我们应该能够使用dbListTables看到数据库中的表的列表。
dbListTables(dbcon)
```
```{r}
#安装sp和rworldmap方便画地图
library(sp)
library(rworldmap)
library(rworldxtra)
worldmap = getMap(resolution = "high")
dim(worldmap)
```
##建立查询语句
##使用SQL在加拿大地图上标注出2006年人口小于1000的地方
```{r}
#合并两个表,因为一个表中有经纬度而人口在另一个表格中
sql_join = "SELECT * FROM CA INNER JOIN POP2006 ON CA.Geographic_name=POP2006.Geographic_name WHERE Population__2006 < 1000"
join = dbGetQuery(dbcon,sql_join)
#画出北美地图
NrthAm = worldmap[which(worldmap$REGION == "North America"),]
plot(NrthAm,col = "white",bg = "lightblue",xlim = c(-140,-55),ylim = c(55,60))
points(join$Longitude,y=join$Latitude,col="red",pch=16)
```
##制作一个2006年各个地区的人口密度图
```{r}
boxplot(join[, "Population__2006"]/join[,"Total_private_dwellings__2006"] ~join[,"Prov_acr"], las = 2, xlab = "Provinces",ylab = "Population per private dwelling",
main = "Population density from 2006")
```