Göm menyn

732G33 Programmering i R

Kursinformation

VT 2018

VT 2018

Senast uppdaterad 2018-03-23 10:07:50

Allmänt


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 Discord användas för kommunikation, speciellt för frågor kring laborationerna. Discord ä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

Undervisningsmaterial och uppgifter


Kursen sträcker sig över 10 veckor, med start vecka 4 (22/1). De första 8 veckorna introducerar en ny del med kursmaterial varje vecka.Den 9:e veckan ängas åt repetition och kompletteringar. Sista veckan är det en datortenta.

  • 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.

Kurslitteratur: A First Course in Statistical Programming with R av Braun och Murdoch (BM), andra upplagan. Lösningar till uppgifterna i boken går att ladda ner hä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


Vecka 1: Introduktion, vektorer, logik och kort om funktioner


Slides: HTML, .Rpres (uppdaterad)

Logik och logiska värden:

Här finns demokod från föreläsningen.

Video:

Kursbok:

  • 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

Datorlaboration: PDF (uppdaterad) Använd denna mall. Lösningar på oligatoriska uppgifter lämnas in via Lisam. Deadline för varje laboration finns angivet på Lisam. De deadlines som gäller för olika kompletteringar finns angivet längre ner på denna sida, under rubriken Kompletteringar.


Vecka 2: Datastrukturer och databearbetning, (I)nput/(O)utput


Slides: HTML, .Rpres (uppdaterad)

Här finns demokod från föreläsningen.

Video:

Kursbok:

  • BM (första upplagan): Kap: 2.2.15 - 2.2.16, 2.5
  • BM (andra upplagan): Kap: 2.8, 2.9

Datorlaboration: PDF (uppdaterad) Använd denna mall. Lösningar på oligatoriska uppgifter lämnas in via Lisam. Deadline för varje laboration finns angivet på Lisam. De deadlines som gäller för olika kompletteringar finns angivet längre ner på denna sida, under rubriken Kompletteringar.


Vecka 3: Programkontroll


Slides: HTML (uppdaterad), .Rpres

Video:

Kursbok:

  • BM (första upplagan) Kap: 4.1, 4.4, 4.5
  • BM (andra upplagan): Kap: 4.1 , 4.4, 4.5, 4.6

Datorlaboration: PDF (uppdaterad) Använd denna mall. Lösningar på oligatoriska uppgifter lämnas in via Lisam. Deadline för varje laboration finns angivet på Lisam. De deadlines som gäller för olika kompletteringar finns angivet längre ner på denna sida, under rubriken Kompletteringar.


Vecka 4: Mer om funktioner, programmeringsteknik och R-paket


Slides: HTML (uppdaterad), .Rpres

Video:

Kursbok:

  • BM (första upplagan) Kap: 4.2, 4.4 - 4.6
  • BM (andra upplagan): Kap: 4.2, 4.7

Annan läsning:

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

Datorlaboration: PDF (uppdaterad) Använd denna mall. Lösningar på oligatoriska uppgifter lämnas in via Lisam. Deadline för varje laboration finns angivet på Lisam. De deadlines som gäller för olika kompletteringar finns angivet längre ner på denna sida, under rubriken Kompletteringar.


Vecka 5: Grundläggande grafik, beskrivande statistik, Rmarkdown och externa datakällor


Slides: HTML (uppdaterad), .Rpres

Video:

Kursbok:

  • BM (första upplagan och andra upplagan) Kap: 3

Annan läsning:

  • R reference card v.2 av Matt Baggot. här
  • Base-r här
  • R-markdown cheat sheet här
  • R-markdown reference guide här

Datorlaboration: PDF (uppdaterad) Använd denna mall. Lösningar på oligatoriska uppgifter lämnas in via Lisam. Deadline för varje laboration finns angivet på Lisam. De deadlines som gäller för olika kompletteringar finns angivet längre ner på denna sida, under rubriken Kompletteringar.


Vecka 6: Objektorientering (OO), linjär algebra och datumhantering


Slides: HTML (uppdaterad), .Rpres

Här finns demokod från föreläsningen.

Video:

Kursbok:

  • BM (första upplagan och andra upplagan) Kap: 6.1 - 6.3

Annan läsning:

Datorlaboration: PDF (uppdaterad) Använd denna mall. Lösningar på oligatoriska uppgifter lämnas in via Lisam. Deadline för varje laboration finns angivet på Lisam. De deadlines som gäller för olika kompletteringar finns angivet längre ner på denna sida, under rubriken Kompletteringar.


Vecka 7: ggplot2, slumptal, statistik, linjär regression


Slides: HTML (uppdaterad), .Rpres

Video:

Kursbok:

  • BM (första upplagan och andra upplagan) Kap: 5.1-5.3

Annan läsning:

  • Data Visualization Cheat Sheet här

Datorlaboration: PDF (uppdaterad) Använd denna mall. Lösningar på oligatoriska uppgifter lämnas in via Lisam. Deadline för varje laboration finns angivet på Lisam. De deadlines som gäller för olika kompletteringar finns angivet längre ner på denna sida, under rubriken Kompletteringar.


Vecka 8: dplyr, tidy data, text och strängar m.m.


Slides: HTML (uppdaterad), .Rpres

Här finns demokod från föreläsningen.

Annan läsning:

  • stringr: modern, consistent string processing Här
  • Introduction to dplyr Här
  • Tidy data av Hadley Wickham (TDHW) här

Datorlaboration: PDF (uppdaterad) Använd denna mall. Lösningar på oligatoriska uppgifter lämnas in via Lisam. Deadline för varje laboration finns angivet på Lisam. De deadlines som gäller för olika kompletteringar finns angivet längre ner på denna sida, under rubriken Kompletteringar.


Vecka 9: Repetition och sammanfattning


Slides: HTML (uppdaterad), .Rpres

Denna tenta kommer att gås igenom under föreläsningen. Här finns andra gamla tentor.

Övrig information


Github

Kursmaterialet til kursen ligger på en github-sida som finns här.

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 . . .

Komplettering av laborationer

Alla laborationer, inklusive miniprojektet, ska vara godkända för att laborationsdelen på kursen ska bli godkänd. Om ni inte får godkänt på en labb som kommer den markeras med komplettering i Lisam.

Följande kompletteringstillfällen finns:

  • komp1: Laboration 1-4, deadline i samband med ordinarie inlämning för laboration 5.
  • komp2: Laboration 1-8, miniprojekt, deadline: 2018-04-08 kl 18.00 (OBS ny tid!)
  • komp3: Laboration 1-8, miniprojekt, deadline: 2018-06-06 kl 18.00 (dagen före första omtentan)
  • komp4: Laboration 1-8, miniprojekt, deadline: 2018-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. Om det är del två och ni arbetar i par döp då filen enligt formen labb5_grupp01_komp1.R Notera att kompletteringar ska skickas in under ordinarie inlämningar på Lisam för respektive labb.

OBS: om inte alla laborationer är godkända efter den sista kompletteringen så måste labbdelen av kursen göras om nästa gång kursen ges! Detta innebär att alla labbar, inklusive miniprojektet måste göras om.

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.
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.

Datortenta

Kursen huvudexamination är en datortenta på 4 h. Notera att tentorna detta år kommer att vara i SU-salarna (Linux) och inte i PC-pularna som det har varit tidigare. Här finns info om datortentan. Datumen för detta års tentor är:

  • 2018-03-28
  • 2018-06-07
  • 2018-08-14

Glöm inte att anmäla er i tid! Endast anmälda studenter får plats på tentan.

Tidigare tentor finns att tillgå här. Notera att från och med i år kommer tentorna att ha annan utformning än tidigare år, då det kommer finnas inslag av automatisk rättning med markmyassignment.

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: Faton Rekathati, Anders Grobstok Dalen
  • Examinator: Mattias Villani