Gör detta innan lektion

Gå igenom Intro to SQL for Data ScienceDataCamp.

Under lektion

Med paketen DBI och RSQLite kan man skriva SQL-kod direkt i ett kod-“chunk” i sitt R Markdown dokument, se vidare på http://rmarkdown.rstudio.com/authoring_knitr_engines.html#sql. Från kommandoraden får man använda funktionen dbGetQuery i RSQLite. Vi kommer använda en databas över däggdjur i data/portal_mammals.sqlite, vi kan ansluta till denna och lista dess tabeller genom

library(RSQLite)
mammals <- dbConnect(SQLite(), "data/portal_mammals.sqlite")
dbListTables(mammals)
## [1] "plots"   "species" "surveys"

Vi använder sedan

dbGetQuery(mammals, 'SELECT * FROM plots LIMIT 5')
##   plot_id                plot_type
## 1       1        Spectab exclosure
## 2       2                  Control
## 3       3 Long-term Krat Exclosure
## 4       4                  Control
## 5       5         Rodent Exclosure

för att skicka SQL-frågor från kommandoraden eller som ett SQL-chunk i R Markdown

SELECT *
FROM species
LIMIT 5
5 records
species_id genus species taxa
AB Amphispiza bilineata Bird
AH Ammospermophilus harrisi Rodent
AS Ammodramus savannarum Bird
BA Baiomys taylori Rodent
CB Campylorhynchus brunneicapillus Bird

Mer information om materialet och vidare övningar finns på Data Carpentry, du väljer själv om du vill arbeta i RStudio eller använda den Firefox-plugin som rekommenderas där.

Tips: Paketet dbplyr har en funktion för att översätta dplyr-kod till SQL:

library(dbplyr)
translate_sql(mtcars %>% 
                 filter(cyl == 8) %>% 
                 mutate(lpm = 235 / mpg) %>% 
                 select(lpm, hp))
## <SQL> SELECT(MUTATE(FILTER("mtcars", "cyl" = 8.0), 235.0 / "mpg" AS "lpm"), "lpm", "hp")