Göm menyn

732G33 Programmering i R

Kursinformation

VT 2025

VT 2025

Senast uppdaterad 2025-04-30

Allmänt


Hemsidan är under uppdatering för VT2025.

Kurslitteratur 2025: The Book Of R av Tilman M. Davies (TD), 2016. Finns tillgänglig som e-bok via biblioteket


Detta är webbsidan för kursen i programmering med med programmeringspråket R. Denna kurs ges varje vårtermin vid Linköpings universitet. I år samläses 732G33 (programkurs) med 732G83 (fristående kurs)

Lärare: Josef Wilzén(examinator) och Johan Alenlöv


Använda R/Rstudio i SU-salar

Datorlaborationerna är i SU-salarna i B-huset.
Hur startar jag Rstudio och börjar labbba i en SU-sal?

  • Logga in med Liu-ID och lösenord
  • Tryck: \(\texttt{Ctrl+Alt+T}\) för att öppna en terminal. Här kan du skriva olika kommandon, dessa aktiveras när du trycker enter.
  • Skriv: \(\texttt{module add courses/732G33}\) och tryck enter
  • Detta läser in kursmodulen, som innehåller de programvaror som behövs i kursen.
  • Skriv \(\texttt{rstudio}\) i terminalen och tryck enter

Allmän struktur på kursen

  • Kursmaterial på kurshemsidan (denna sida)
  • Föreläsningar i sal
  • Kommunikation kommer att ske via Teams.
  • Seminarier i sal
  • Labbar:
    • Görs på dator. Antingen egen eller i datorsal på Campus.
    • Hjälp kommer att erbjudas under schemalagda tiden.
    • Inlämningar kommer att ske på kursen kursrum på Lisam.
    • Alla labbar ska redovisas muntligt för lärare/assistent
  • Schema finns på timeedit

Microsoft Teams kommer användas för kommunikation, speciellt för frågor kring laborationerna. Teams är ett samarbetsverktyg, som går att använda via webbläsare eller som app på mobil/dator. Appen finns för olika plattformar. Kursen kommer att ha ett eget team, länk till teamet kommer att finnas på kursrummet på Lisam.

Gör följande:

  • Installera skrivbordsprogammet för Teams
  • Se till att du har tillgång till kursens kursrum på Lisam, detta kräver att du har ett liu-ID och är antagen på kursen.


R och Rstudio

Innehåll

Kursen använder R (själva programmeringsspråket) och Rstudio. Rstudio är ett program som gör det lättare att arbeta med R, en så kallad IDE. Dessa program finns förinstallerade på datorerna i datorsalarna.

Om ni vill jobba på egen dator går det bra, dessa program finns tillgängliga för Windows, Mac och Linux.

  • Ladda ner och installera R här, version 4.4.2 eller högre.
  • Ladda ner och installera R-Studio här, version RStudio-2024.12.1 eller högre.

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


Kursinnehåll


Innehåll

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

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
  • Installera och använda R-paket
  • Statistik och grafik
  • Strängar och datum
  • Grundläggande linjär algebra


Undervisningsmaterial och uppgifter


Innehåll

Kursen sträcker sig över 10 veckor, med start vecka 14 (2/4). De första 8 veckorna introducerar en ny del med kursmaterial varje vecka. Den 9:e veckan ägnas åt repetition och kompletteringar. Sista veckan är det en datortenta. När slides eller labbinstruktioner är uppdaterade för 2025 så kommer det att stå uppdaterad efter länken.

De första 8 veckorna kommer att ha en föreläsning och en datorlaboration per vecka.

  • Föreläsning Föreläsningen introducerar nya koncept och lägger grunden för datorlaborationen. Till varje föreläsning finns läsanvisningar till kursboken, olika videos och ev. extramaterial.
  • Datorlaboration 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. Två delar
    • Övningsuppgifter \(\rightarrow\) är mycket viktiga! Lägger grunden för inlämningsuppgifterna och tentan.
    • Inlämningsuppgifter
  • Seminarier Är till för frågor och interaktion. Lärare löser övningsuppgifter och svarar på frågor från studenterna.

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

Kursen examineras genom en datortenta och 5 stycken datorlaborationer. Tentan kan ge betygen U, G och VG. Datorlaborationerna kan ge betygen U och G. För att få godkänt på kursen så måste man ha G på datorlaborationerna och tentan, för VG så behöver man även ha VG på tentan.

Återkommande kursmaterial

  • Kurslitteratur: The Book Of R av Tilman M. Davies (TD), 2016. Finns tillgänglig som e-bok via biblioteket
  • Google developers R videos (GD) här
  • Roger Pengs R videos (RP) här
  • Referenskort/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.

Datorlaborationer

Kursen innehåller 8 datorlaborationer. Länkar till datorlaborationerna finns under respektive kursvecka nedan.

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

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

Ni kan ansluta till datorsalar på campus hemifrån, se instruktioner här.


Inlämningar


Innehåll

Kursen innehåller totalt 4 inlämningsuppgifter som är obligatoriska att lämna in samt ett projekt.

De två första inlämningsuppgifterna görs individuellt, de två sista samt projektet görs i grupper om två.

För att bli godkänd på inlämningar krävs att ni gör följande:

  1. Lös uppgifterna i inlämningen. Se till att markmyassignment inte ger några fel.
  2. Redovisa uppgifterna muntligt för en labassistent/lärare under någon datorlaboration.
  3. När ni fått okej från labassistent/lärare kan ni ladda upp er lösning på Lisam.
  4. Exakt deadline för olika inlämningar finns på Lisam under Inlämningar.

För projektet räcker det med inlämning i Lisam när man är klar.

Inlämningsuppgift 1: PDF R mall (Uppdaterad för VT25)

  • Uppgifter baserat på material från kursvecka 1 till 2
  • Mjuk deadline: 13 april (= föreslagen arbetstakt)
  • Hård deadline: 20 april

Inlämningsuppgift 2: PDF R mall (Uppdaterad för VT25)

  • Uppgifter baserat på material från kursvecka 1 till 4
  • Mjuk deadline: 27 april
  • Hård deadline: 4 maj

Inlämningsuppgift 3: PDF R mall (Uppdaterad för VT24)

  • Uppgifter baserat på material från kursvecka 1 till 6
  • Mjuk deadline: 11 maj
  • Hård deadline: 18 maj

Inlämningsuppgift 4: PDF R mall (Uppdaterad för VT24)

  • Uppgifter baserat på material från kursvecka 1 till 8
  • Mjuk deadline: 25 maj
  • Hård deadline: 1 juni

Projekt: PDF Rmd mall (Uppdaterad för VT24)

  • Mjuk deadline:
  • Hård deadline:




Vecka 1: Introduktion, vektorer, logik och kort om funktioner - startar 1/4


Innehåll

Slides: Föreläsning 1 (Uppdaterad för VT25)

R demo:

Demo från föreläsningen F1_demo.R


Kursbok:

  • INTRODUCTION
  • 1.2.2 - 1.4.2
  • 2
  • 4.1-4.2
  • 6.1.1-6.1.3
  • A.1 (appendix)
  • B.1 (appendix)
  • Generellt kolla: Important Code in This Chapter i slutet av de berörda kapitlen


Video:


Datorlaboration: PDF (uppdaterad 2025)






Vecka 2: Datastrukturer och databearbetning, (I)nput/(O)utput - startar 7/4


Innehåll
Denna vecka kommer vi att titta närmare på olika datastrukturer (=sätt att organisera data), hur vi kan hantera data och hur vi gör för att läsa data från hårddisken till R och skriva data till hårddisken.

Slides: Föreläsning 2 (uppdaterad 2025)

R demo:

Demo från föreläsningen F2_demo.R


Seminarium: (uppdaterad 2025)

kod från seminarium


Kursbok:

  • 3.1-3.2, 3.3.3-3.3.4, 3.4 Matrices and arrays
  • 4.3 Factors
  • 5 Lists and data.frames
  • 8.1-8.3.1 Reading and writing files
  • Generellt kolla: Important Code in This Chapter i slutet av de berörda kapitlen


Video:


Datorlaboration:

PDF (Uppdaterad 2025)






Vecka 3: Programkontroll - villkorssatser och loopar - startar 14/4


Innehåll

Denna vecka kommer studera sätt att styra programmeringskod med hjälp av villkorssatser och olika typer av loopar.

Slides: Föreläsning 3 (Uppdaterad för 2025)

R demo:

Demo från föreläsningen F3_demo.R

Datorlaboration:

PDF (Uppdaterad för 2025)






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


Innehåll

Denna vecka kommer vi att fördjupa oss i funktioner, hur vi skriver kod på ett bra sätt, R-paket mm.

Slides: Föreläsning 4 (Uppdaterad för VT25)


Datorlaboration: PDF (Uppdaterad för VT25)






Vecka 5: Grundläggande grafik, beskrivande statistik, Rmarkdown och externa datakällor - startar 28/4


Innehåll

Första veckan på del 2, där vi kollar olika tillämpningar.

Denna vecka handlar om basgrafiken i R, externa datakällor och att göra rapporter med Rmarkdown + knitr.

Slides: Föreläsning 5 (uppdaterad VT25)

R demo:

Demo från föreläsningen F5_demo.R

Intro Rmarkdown: Rmd-fil och pdf-fil Notera: Om ni till bygga/knitta/rendera en pdf-fil så behöver LaTex vara installerat på er dator. Se datorlaboration 5 för instruktioner.

Seminarium:

Markdown filen hittar ni här och det tillhörande scriptet finns här observera att ni kan behöva ändra source så den hittar filen, bör fungera om ni har scriptet och markdown filen i samma mapp.

Koden för Monte Carlo simuleringen finns här


Kursbok:

  • Basic plotting 7.1-7.3
  • Advanced plot customization 23.1-23.2, 23.4
  • Common probability distributions 16


Annan läsning:


Video:


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 för VT24)






Vecka 6: Objektorientering (OO), linjär algebra och datumhantering - startar 5/5


Innehåll

Slides: Föreläsning 6 (uppdaterad VT24)

R demo:

Demo från föreläsningen F6_demo.R


Seminarium:

  • Objektorientering:
    • Skapa klasser
      • Geomteriska figurer, kvadrat, triangel
    • Skapa egen (ny) generisk funktion
      • Area
      • Omkrets
  • Datum och tid:
    • Lite om tidszoner
    • Lite om att ändra locale till svenska
    • Skapa en funktion som testar om ett datum ligger inom en viss tid från idag.

Kod från seminariet


Lubridate:

  • Från R cran: vignette
  • Boken R for Data Science: 16 Dates and times
  • Dates and Times Cheat Sheet här
  • Dates and Times Made Easy with lubridate av Garrett Grolemund och Hadley Wickham. Artikeln finns att ladda ned här Notera att lubridate har fått vissa uppdateringar sen artikeln skrevs.


Datum i base R:


Objektorientering

Linjär algebra

  • Kolla här
  • Kursbok: 3.3


Datorlaboration: PDF (Uppdaterad för VT24)







Vecka 7: ggplot2, statistik, (linjär regression) - startar 12/5


Innehåll

Slides: Föreläsning 7

R demo:

Demo från föreläsningen F7_demo.R

Seminarium:

Kod från seminariet


ggplot2:


Linjär regression (frivilig fördjupning)


Datorlaboration: PDF (Uppdaterad för VT24)







Vecka 8: Text och strängar, databearbetning (dplyr, tidy data) - startar 19/5


Slides: Föreläsning 8 (uppdaterad VT24)

R demo:

Demo från föreläsningen F8_demo.R


Sammanfattning av slides för texthantering och regexp: Här



Seminarium:

Exempel på användande av mönstermatchning och databearbetning med piping.

Kod från seminariet


Texthantering:

  • Video, RP: Regular Expressions
  • stringr: modern, consistent string processing Här
  • Introduction to stringr, Här
  • Handling and Processing Strings in R (av Gaston Sanchez), Här Kap 1 (hela), 2 (hela), 3.1, 3.3, 4.2.1-4.2.3, 5-5.2.2, 5.2.6, 5.3.1-5.3.2, 6-6.1.3, 6.2.2, 6.4-6.4.10, 7.1, 7.2 (se även labben kaptiel 1)
  • Ex på användning av stringr, kolla här
  • R for Data Science: 14 Strings


Modern databearbetning


Datorlaboration: PDF (Uppdaterad för VT24)






Vecka 9: Repetition - startar 26/5


Slides: Föreläsning 9


Delar av denna tenta kommer att gås igenom under föreläsningen.

Lösning

Här finns andra gamla tentor.



Seminarium:

Veckas seminarium kommer att vara en frågestund där jag finns tillgänglig för att svara på alla era frågor!





Övrig information


Komplettering av laborationer

Alla inlämningar, inklusive projektet, ska vara godkända för att laborationsdelen på kursen ska bli godkänd. Om ni inte får godkänt på en inlämning så kommer den markeras med komplettering i Lisam.

Följande kompletteringstillfällen finns:

  • komp1: Inlämning 1-4, projekt, deadline:
  • komp2: Inlämning 1-4, projekt, deadline:
  • komp3: Inlämning 1-4, projekt, deadline:

Deadline gäller för inlämning i Lisam, kontakta Johan Alenlöv för muntlig redovisning, kan ske antingen på plats eller via Zoom/Teams.

Om ni inte har lämnat alls på en inlämning och den är stängd:

  • Maila då Johan Alenlöv minst 2 dagar innan deadline så får ni er inlämning öppnad för komplettering. Ange vilka laborationer det gäller och vilken grupp som ni tillhör för laborationer på del 2 i kursen.

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 inlämning

OBS: om inte alla inlämningar ä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 inlämningar, inklusive projektet måste göras om.


Projekt


Projektet kommer genomföras i två delar. Den behandlar databearbetning, grafik med ggplot2 och statistik analys.

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

Här finns en mall för projektet.


Datortenta


Kursen huvudexamination är en datortenta på 5 h.

  • 2025-06-11
  • 2025-08-14
  • Troligen slutet av oktober 2025

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. (kommer senare)

Här finns information om datortenta i SU-salar: länk

Efter kursen


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

  • R for Data Science av Garrett Grolemund och Hadley Wickham, finns här
  • 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
  • Här finns en massa länkar med mer lärresurser.


Personal på kursen