Gå igenom Intro to SQL for Data Science på DataCamp.
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
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")