Loading [MathJax]/jax/output/CommonHTML/jax.js
+ - 0:00:00
Notes for current slide
Notes for next slide

INPUT - OUTPUT Workshop R & RStudio

Deel 1

Intro in R en RStudio; Projecten; Externe data inlezen

Sven De Maeyer

22/04/2022

1 / 40

Overzicht

2 / 40

Over mezelf

  • Universiteit van Antwerpen; Faculteit Sociale Wetenschappen; dept. Opleidings- en onderwijswetenschappen (OOW)

  • brede onderzoeksinteresse: verschillende topics (psychometrie, schrijfonderzoek, learning strategies, educatie voor duurzame ontwikkeling, linguïstiek, ...)

  • belangrijkste onderzoeksfocus: Comparative Judgement + Leren van vergelijken

  • feRvent R gebruiker




Blog: https://svendemaeyer.netlify.app/

Twitter: @svawa

github: https://github.com/Sdemaeyer2

3 / 40

Even elkaar leren kennen...

Je functie?

Onderzoek?

Verwachtingen?




4 / 40

1. Praktische afspraken

5 / 40

Materiaal


Verschillende types van files:

  • Rmarkdown files (voor slides en voorbeelden)

  • R-scripts (als voorbeeld)

  • datasets

  • html-versie van de slides


Allemaal via Dropbox beschikbaar.

[https://www.dropbox.com/sh/37p15c6lcg6b0b3/AADbo4EYrjyoO7D4n0ldGNoUa?dl=0]


De slides als html kan je ook openen via mijn 'Talks site' [https://slides-sdemaeyer.netlify.app/]

6 / 40

Teams


We zullen de sessies opnemen


🙏 Maak het interactief! Interfereer gerust!


Zit je vast bij bepaalde oefeningen?

Deel je scherm ...


nodig? Laat het weten!

7 / 40

2. Wat is R en waarom R?

8 / 40

Wat is R?

  • Krachtig instrument voor

    • Data Science
    • Statistische analyses
    • Statistisch programmeren
    • Grafieken etc maken ...
  • Een 'TAAL'

We moeten wat woordenschat en grammatica leren ...

9 / 40

Waarom R?

  • FREE OPEN SOURCE!

  • Constant in ontwikkeling

  • 1000'en "add-ins" (pakketten)

  • Statistici implementeren nieuwe of betere algoritmes en technieken in R

  • Loopt voor op commerciële statistische software

  • Vergemakkelijkt Open Science

  • GROTE COMMUNITY

10 / 40

3. R en RStudio installeren

11 / 40

R installeren

https://cran.r-project.org/

Mocht je R nog niet hebben geïnstalleerd, doe het nu... Zit je vast, laat het even weten.

12 / 40

Laat ons samen R even kort verkennen ...

13 / 40

RStudio installeren

14 / 40

RStudio installeren

https://www.rstudio.com/products/rstudio/

Scroll naar beneden en klik op RStudio Desktop

Nu kan je RStudio downloaden

15 / 40

RStudio installeren

https://www.rstudio.com/

Klik op Products

Klik op RStudio

Nu kan je RStudio installeren

Installeer RStudio op je computer indien je dit nog niet gedaan hebt...

16 / 40

4. De RStudio interface

17 / 40

RStudio omgeving

Laat ons samen RStudio verkennen!

18 / 40

Dadelijk open ik RStudio. Uiteraard kan je zelf ook RStudio mee openen en kijken hoe het er bij jou uitziet...

5. De basis in R

19 / 40

Type van objecten


  • vectors

  • matrices

  • arrays

  • data-frames

  • lists

  • functions

...

20 / 40

Eerste stappen in R ; we maken een script ...

Tijd om onze handen 'vuil te maken' en samen te coderen

De code die we straks hanteren staat ook op de volgende slides.

Daarnaast is er een script Fruit.R waarin ook deze code is opgenomen (zie Dropbox/VLHORA_R_2021/R_scripts)

22 / 40

Code-Blocks

We maken een vector met de naam Fruit

Fruit <- c("Apples", "Bananas", "Lemons", "Berries", "Peaches")
  • c() staat voor concatenate (= aaneenrijgen), alle elementen tussen haakjes gescheiden door , worden samengevoegd tot één element

  • de <- betekent dat we het resultaat willen wegschrijven in een object (een vector) die we Fruit noemen

  • doordat de elementen tussen " " staan, geven we aan dat de elementen het type Character zijn

Laat ons het object Fruit opvragen

Fruit
## [1] "Apples" "Bananas" "Lemons" "Berries" "Peaches"

We kunnen ook de structuur van het object Fruit checken via de str() functie

str(Fruit)
## chr [1:5] "Apples" "Bananas" "Lemons" "Berries" "Peaches"
23 / 40

Code-Blocks

We maken een vector met de naam Weight

Weight <- c(230, 191, 93, 100, 48)

nu worden de elementen weggeschreven als numerieke elementen

str(Weight)
## num [1:5] 230 191 93 100 48

dus we kunnen ermee beginnen rekenen...

bv. we kunnen de functie mean( ) toepassen

mean(Weight)
## [1] 132.4
24 / 40

Code-Blocks

We maken een vector met de naam Yellow

Yellow <- c(F, T, T, F, F)

nu zijn de elementen 'logische operatoren' (TRUE of FALSE)

str(Yellow)
## logi [1:5] FALSE TRUE TRUE FALSE FALSE

Laat ons kijken wat er in de vector Yellow zit

Yellow
## [1] FALSE TRUE TRUE FALSE FALSE
25 / 40

Code-Blocks

We maken een data.frame met de naam Fruit_data via de data.frame( ) functie

Fruit_data <- data.frame(Fruit, Weight, Yellow)
Even *Fruit_data* bekijken
Fruit_data
## Fruit Weight Yellow
## 1 Apples 230 FALSE
## 2 Bananas 191 TRUE
## 3 Lemons 93 TRUE
## 4 Berries 100 FALSE
## 5 Peaches 48 FALSE
We kunnen ook opnieuw de structuur van Fruit_data bekijken
str(Fruit_data)
## 'data.frame': 5 obs. of 3 variables:
## $ Fruit : chr "Apples" "Bananas" "Lemons" "Berries" ...
## $ Weight: num 230 191 93 100 48
## $ Yellow: logi FALSE TRUE TRUE FALSE FALSE
26 / 40

Code-Blocks

De $ operator om te verwijzen naar een vector (of ook kolom of variabele)

Fruit_data$Fruit
## [1] "Apples" "Bananas" "Lemons" "Berries" "Peaches"

Of via indexing: verwijzen naar kolom- (en/of rij-) nummers tuseen [rij, kolom]

Element uit rij 1 en kolom 1 opvragen

Fruit_data[1,1]
## [1] "Apples"

Elementen in kolom 3 opvragen

Fruit_data[,3]
## [1] FALSE TRUE TRUE FALSE FALSE

Elementen in rij 3 opvragen

Fruit_data[3,]
## Fruit Weight Yellow
## 3 Lemons 93 TRUE
27 / 40

6. Pakketten installeren en gebruiken

28 / 40

Pakketten...

  • Het R universum is constant in ontwikkeling

  • Pakketten = uitbreidingen van de functies die in Base zitten

  • Specialistisch tot Generieke/Universele pakketten

  • overzicht op https://cran.r-project.org/ (doorklikken naar Packages)

  • we maken een selectie...

29 / 40

Welcome to the tidyverse

een MUST-HAVE voor iedereen!

Meer informatie op https://tidyverse.org

30 / 40

ìnstall.packages( ) en library( )

Pakketten kan je downloaden en installeren

  • via 'klikken' in RStudio

  • via een functie in de Console of in een script


wat ikzelf het vaakst doe: install.packages()

Bv:

install.packages("tidyverse",
dependencies = T)

Pakketten kan je activeren tijdens je sessie

  • via 'klikken' in RStudio

  • via een functie in de Console of in een script


wat ikzelf het vaakst doe: library()

Bv:

library("tidyverse")

Tijd om samen in RStudio aan de slag te gaan ...

31 / 40

7. Werken met projecten in RStudio

32 / 40

Waarom?

Tijdens analyses zullen we geregeld verschillende bestanden hanteren:

  • externe datasets
  • analyse scripts
  • output (html-files; figuren; ...)

Gevolg: in code moeten we verwijzen naar die files via ABSOLUTE paden

'c:/Users/Sven/Mijn Documenten/UAntwerpen/Analyses/ProjectX/R_Script/Analysescript1.R'

Superlastig om je werk te delen; verplaatsen van pc; ...


RStudio heeft het concept Project geïntroduceerd om dit te omzeilen

In een project hateer je RELATIEVE paden (vertrekkend vanuit de folder waarin je een project opslaagt)

'~R_Script/Analysescript1.R'
33 / 40

RIASEC_project

Samen een project maken in RStudio


Op Dropbox kan je de map RIASEC_project vinden welke je ergens op je pc kan zetten. Dit wordt ons startpunt dadelijk.

34 / 40

Een project aanmaken in 'RStudio'

Via File/New Project...

Vervolgens kan je kiezen:

35 / 40

Voorbeeld dataset voor de workshop

Schaal Voorbeelditem n items
Realistic Test the quality of parts before shipment 8
Investigative Study the structure of the human body 8
Artistic Design artwork for magazines 8
Social Give career guidance to people 8
Enterprising Operate a beauty salon or barber shop 8
Conventional Inventory supplies using a hand-held computer 8

Data afgehaald van https://openpsychometrics.org/_rawdata/ ; Data uitgefilterd voor 'BE', 'NL' en 'GB'

36 / 40

Externe data inlezen

Data komt in allerlei formaten, maar de meest courante zijn:

  • MS Excel
  • SPSS / Stata / SAS
  • tekst (csv, tab-delimited)

Verschillende methodes en pakketten zijn ontwikkeld om die externe bronnen van data in te lezen

37 / 40

MS Excel data inlezen met het readxls pakket

Zorg dat het pakket geïnstalleerd is op je pc

Vervolgens:

library(readxl)
Data <- read_excel(
path = "<verwijzing naar de map en het bestand>"
)

Stel: excel-file met de naam Dataverzameling1 met meerdere werkbladen

Doel: werkblad met de naam Groep2 inlezen wegschrijven in Data_Groep2

Data_Groep2 <- read_excel(
path = "Dataverzameling1.xlsx",
sheet = "Groep2"
)

sheet moet je niet gebruiken als:

  • er maar 1 werkblad in de file zit
  • er meerdere werkbladen in de file zitten, maar je wenst enkel het eerste werkblad in te lezen
38 / 40

SPSS data inlezen met pakket foreign

Zorg dat het pakket geïnstalleerd is op je pc

Vervolgens:

library(foreign)
Data <- read.spss(
file = "<verwijzing naar de map en het bestand>",
use.value.labels = FALSE,
to.data.frame = TRUE
)

use.value.labels argument:

Labels in SPSS weerhouden in R data-frame?

Bv. variabele met 3 categorieën: 1 = "Laag", 2 = "Gemiddeld", 3 = "Hoog". En deze labels zijn zo in SPSS file ingegeven. Dan kan je ervoor kiezen om de labels in de R data-frame weg te schrijven (use.value.labels = TRUE) of de getallen 1, 2 en 3 in de R data-frame weg te schrijven (use.value.labels = FALSE)

39 / 40

CSV files inlezen met functie read.table( )

CSV files zien er doorgaans zo uit (gescheiden door een , of ;)

Kolom1, Kolom2, Kolom3
1, 3, 5
2, 4, 6
8, 10, 99

Functie read_table( ) is het handigste...

Data <- read.table(
file = "<verwijzing naar map en bestand>",
header = TRUE,
sep = ",",
dec = "."
)
  • header argument:

    Bevat de eerste rij kolomnamen (oftewel variabelenamen) of niet?

  • sep argument:

    Welk teken onderscheid gegevens in verschillende kolommen van elkaar?

  • dec argument:

    Welk teken is het decimaalteken? (soms is dat een punt en soms een komma)

40 / 40

Overzicht

2 / 40
Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
Esc Back to slideshow