Göm menyn

732G33 Programmering i R

Kursinformation

VT 2024

VT 2024

Senast uppdaterad 2024-03-19

Allmänt


Hemsidan är under uppdatering för VT2024.

Kurslitteratur 2024: 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)


Johan Alenlöv är lärare och examinator på kursen.


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 mailas ut och 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

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.2.1 eller högre.
  • Ladda ner och installera R-Studio här, version 2022.07.1 eller högre.

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


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


Undervisningsmaterial och uppgifter


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 labinstruktioner är uppdaterade för 2024 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. Totalt 4 av dessa laborationer har inlämningsuppgifter som ä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.

För att bli godkänd på en datorlaboration krävs det att man muntligt redovisar uppgiften för en lärare / assistent.

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.






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


Översikt kursveckor

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

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

Använd denna mall. Lösningar på obligatoriska 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


Översikt kursveckor
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 för VT23)

R demo:

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


Seminarium:

Kod


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

Använd denna mall. Lösningar på obligatoriska 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 - villkorssatser och loopar


Översikt kursveckor

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 VT23)

R demo:

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

Datorlaboration:

PDF (Uppdaterad för VT23)

Använd denna mall. Lösningar på obligatoriska 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


Översikt kursveckor

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 VT23)


Datorlaboration: PDF (Uppdaterad för VT23)

Använd denna mall, notera att det är en ny mall jämfört med tidigare veckor. Lösningar på obligatoriska 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


Översikt kursveckor

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 VT2023)

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:

Kod

Uppgift som vi löste tillsammans:


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 VT23)


Notera att projekt del 1 är en del av inlämningsuppgifterna denna vecka. Projekt del 1 har en egen inlämning på Lisam. Se Projekt för detaljer.
Använd denna mall. Lösningar på obligatoriska 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


Översikt kursveckor

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

R demo:

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


Seminarium:

Kod


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 VT23)


Använd denna mall. Lösningar på obligatoriska 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, statistik, (linjär regression)


Översikt kursveckor

Slides: Föreläsning 7

R demo:

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

Seminarium:

R-Kod

Rmd-fil som visar hur man kan lägga till blanka mellanrum i LaTex-formler.

Uppgift + lösning finns här: länk


ggplot2:


Linjär regression (frivilig fördjupning)


Datorlaboration: PDF (Uppdaterad för VT23)


Använd denna mall. Lösningar på obligatoriska 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: Text och strängar, modern databearbetning (dplyr, tidy data)


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

R demo:

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


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



Seminarium:

R-Kod


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 VT23)


Använd denna mall. Lösningar på obligatoriska 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 tenta


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.







Ö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: 2024-06-04 kl 23:59
  • komp2: Inlämning 1-4, projekt, deadline: 2024-08-08 kl 23:59
  • komp3: Inlämning 1-4, projekt, deadline: 2024-10-30 kl 23:59

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 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 startar in i samband med laboration 5 och den andra delen startar i samband med laboration 7.

Deadline för del 1 är 9/3 - 2022 och deadline för del 2 är 23/3 - 2022.

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å 4 h.

  • 2024-06-04
  • 2024-08-08
  • 2024-10-30

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.

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