Göm menyn

732G33 Programmering i R

Kursinformation

VT 2017

VT 2017

Senast uppdaterad 2017-03-22 16:05:15

Detta är webbsidan för kursen i programmering med statistikprogrammet R. Denna kurs ges varje vårtermin vid Linköpings universitet.

I år ska kommer Slack användas för kommunikation, speciellt för frågor kring laborationerna. Slack är ett samarbetsverktyg, som går att använda via webbläsare eller som app på mobil/dator. Appen finns för olika plattformar.

Mål

Syftet med denna kurs är att introducera enklare programmeringstekniker med särskilt fokus på programspråket R.

Innehåll

Kursen kommer behandla statistiskt programmering i R. Kursen ger en introduktion till bland annat:

  • Installera och använda R / R-Studio.
  • Att använda hjälpen i R / R-studio.
  • Importera och exportera data
  • Datastrukturer och bearbeta data
  • Funktioner och dokumentation
  • Programmeringsteknik
  • Matrisoperationer
  • Strängar och datum
  • Statistik och grafik
  • Installera och använda R-paket
Undervisningsformer

Kursen består av 8 block, ett block per vecka. Varje block innehåller följade delar:

  • Föreläsning, F . Föreläsningen introducerar nya koncept och lägger grunden för datorlaborationen. Till varje föreläsning finns läsanvisningar till kursboken och ev. extramaterial.
  • Datorlaboration, D. Denna del är den viktigaste delen av kursen. Vid laborationerna kommer ni att programmera och lära er lösa problem med och i R.

I andra halvan av kursen kommer även ett Miniprojekt att genomföras.

Följande ämnen kommer behandlas i respektive block:

Block Innehåll
1 Introduktion, vektorer, logik och kort om funktioner
2 Datastrukturer och databearbetning, (I)nput/(O)utput
3 Programkontroll
4 Mer om funktioner, programmeringsteknik och R-paket
5 Grundläggande grafik, beskrivande statistik, Rmarkdown och externa datakällor
6 Objektorientering, linjär algebra och datumhantering
7 ggplot2, slumptal, statistik, linjär regression
8 dplyr, tidy data, text och strängar m.m.
Kurslitteratur

  • A First Course in Statistical Programming with R av Braun och Murdoch (BM),första eller andra upplagan. Lösningar till uppgifterna i boken går att ladda ner här.

  • Handling and processing strings in R av Gaston Sanchez (GS). Boken finns att ladda ned här.

  • Dates and Times Made Easy with lubridate av Garrett Grolemund och Hadley Wickham (GGHW). Artikeln finns att ladda ned här.

  • Best practices for scientific computing av Greg Wilson et. al. (GW) Denna artikel finns tillgänglig här.

  • Introduction to dplyr (ID) här

  • Tidy data av Hadley Wickham (TDHW) här

Videomaterial
  • Google developers R videos (GD) här
  • Roger Pengs R videos (RP) här
  • Video om R markdown (Rmd) här
  • Video om linjär regression (lm) del 1 och del 2
Referenskort
  • R reference card v.2 av Matt Baggot. Detta referenskort med viktiga funktioner är det hjälpmedel tillåts vid examen. Referenskortet kan laddas ned här
  • RStudio Cheat Sheets här
  • R-markdown cheat sheet (Rmd cheat) här
  • R-markdown reference guide (Rmd ref) här
  • RStudio IDE Cheat Sheet här
  • Data Visualization Cheat Sheet här
  • Data Wrangling Cheat Sheet här
Referenslitteratur
  • Advanced R av Hadley Wickham. Denna (online-)bok är inte obligatorisk men kan användas för fördjupning och finns här.
Flipped learning och Frågor

Kursen kommer innehålla inslag av flipped learning. Som del av detta kommer det vara obligatoriska frågor som ska lämnas in varje vecka. Se slides för föreläsningen 1 för mer info.

Föreläsningar

Kursen innehåller nio föreläsningar. Nedan finns material för respektive vecka

Föreläsning Slides Demokod Svar .Rpres
F1 HTML (uppdaterad) ingen kod ingen kod .Rpres
F2 HTML (uppdaterad) kod svar .Rpres
F3 HTML (uppdaterad) kod svar .Rpres
F4 HTML (uppdaterad) ingen kod svar .Rpres
F5 HTML (uppdaterad) kod ingen kod .Rpres
F6 HTML (uppdaterad) kod ingen kod .Rpres
F7 HTML (uppdaterad) kod svar .Rpres
F8 HTML (uppdaterad) kod svar .Rpres
F9 HTML (uppdaterad) kod svar .Rpres
Läsanvisningar
  1. Introduktion, vektorer, logik och kort om funktioner
  • BM (första upplagan) Kap: 1.1, 2.1-2.2.14, 2.3, 2.4, 4.3.2
  • BM (andra upplagan) Kap: 1.1, 2.1-2.7, 4.4.1, 4.4.2
  • GD: Video: 1.1-1.5, 1.7,
  • RP: Video: What makes R different?, Background and Overview, How to get Help
  1. Datastrukturer och databearbetning, (I)nput/(O)utput
  • BM (första upplagan): Kap: 2.2.15 - 2.2.16, 2.5
  • BM (andra upplagan): Kap: 2.8, 2.9
  • GD: Video: 1.6, 2.1, 2.2, 2.5, 3.1
  • RP: Video: Lecture 2a, 2b och 2c, The str function, Reading/Writing Data: Part 1 och 2
  1. Programkontroll
  • BM (första upplagan) Kap: 4.1, 4.4, 4.5
  • BM (andra upplagan): Kap: 4.1 , 4.4, 4.5, 4.6
  • GD: Video: 2.3 - 2.4
  • RP: Video: Control structures in R, Debugging Tools in R
  1. Mer om funktioner, programmeringsteknik och R-paket
  • BM (första upplagan) Kap: 4.2, 4.4 - 4.6
  • BM (andra upplagan): Kap: 4.2, 4.7
  • GD: Video: 3.2, 4.1 - 4.6
  • RP: Video: Writing functions, Scoping rules for R, Debugging Tools in R
  • GW: Hela artikeln
  1. Grafik, R-markdown, knitr, externa datakällor
  • BM (första upplagan) Kap: 3
  • RP: Literate Statistical Programming with knitr
  • Rmd, Rmd cheat, Rmd ref
  1. Objektorientering, linjär algebra, tid och datum
  • BM (första upplagan) Kap: 6.1 - 6.3
  • GGHW: Hela artikeln
  • RP: Video: Dates and Times
  1. Grafik med ggplot2, statistisk analys och simulering, linjär regression
  • BM (första upplagan) Kap: 5.1-5.3
  • lm: Video 1 och 2
  • RP: Plotting with ggplot2: Part 1, Plotting with ggplot2: Part 2
  1. dplyr, tidy data och texthantering
  • RP: Regular Expressions, Introduction to the Baltimore Homicide Data, Regular Expressions in R
  • ID: Hela.
  • TDHW: Avsnitt 1-3.
  • GS: Se labb.
Datorlaborationer

Kursen innehåller åtta datorlaborationer. Dessa laborationer är obligatoriska.

Datamaterialet som används i laborationerna finns att ladda ned här.

En mall för laborationerna går att ladda ned här.

Datorlaborationerna och ev kompletteringar lämnas in på Lisam. För att få tillgång till kursrummet på Lisam så behöver en registrera sig på kursen.

Obs! För att ladda ner filerna från github, högerklicka på knappen Raw och välj Spara länk som . . .

Block Labbinstruktion
D1 PDF (uppdaterad)
D2 PDF (uppdaterad)
D3 PDF (uppdaterad)
D4 PDF (uppdaterad)
D5 PDF (uppdaterad)
D6 PDF (uppdaterad)
D7 PDF (uppdaterad)
D8 PDF (uppdaterad)
Komplettering av laborationer och frågor

Alla laborationer ska vara godkända för att laborationsdelen på kursen ska bli godkänd. De obligatoriska frågorna är en del av laborationerna. Följande kompletteringstillfällen finns:

  • komp1: Laboration 1-4, deadline i samband med ordinarie inlämning för laboration 5.
  • komp2: Laboration 1-7, deadline: 2017-03-26 kl 18.00
  • komp3: Laboration 1-8, deadline: 2017-06-06 kl 18.00 (dagen före första omtentan)
  • komp4: Laboration 1-8, deadline: 2017-08-13 kl 18.00 (dagen före andra omtentan)

Vid inlämningen på Lisam: lämna in en fil per laboration. Döp filen enligt formen labb1_josad732_komp1.R om det är laboration 1 och komplettering 1. Notera att kompletteringar ska skickas in under ordinarie inlämningar på Lisam för respektive labb.

Miniprojekt

Miniprojektet kommer genomföras i två delar. Den första delen handlar om att läsa in data, beskrivande statistik och R:s basgrafik. Den andra delen behandlar databearbetning, grafik med ggplot2 och statistik analys. Den första delen lämnas in i samband med laboration 5 och den andra som en del av laboration 7.

Här finns beskrivet i detalj hur miniprojektet ska genomföras.

Här finns en mall för miniprojektet.

Ladda ned och installera R

Det är en fördel att ladda ned och installera R och R-Studio på sin egen dator:

  • Ladda ner och installera R här
  • Ladda ner och installera R-Studio här

Här finns YouTube - klipp om att installera R och R-Studio på Windows, Mac och Linux/Ubuntu

Tidigare tentor

Tidigare tentor finns att tillgå här.

Efter kursen

Resurser för den som vill lära sig mer efter kursen:

  • Här finns en massa länkar med mer lärresurser.
  • Advanced R av Hadley Wickham, finns här.
  • R packages av Hadley Wickham, finns här.
  • Några fria e-böcker om R finns här
Lärare och examinatorer

  • Föreläsare: Josef Wilzén, Måns Magnusson
  • Labbassistenter: Linn Mattsson, Georgia Mushe, Faton Rekathati, Joakim Bäcklund och Konrad Nelson
  • Examinator: Mattias Villani