Dit is een site voor studenten van de Open Universiteit. Voordat je een vraag kunt stellen moet je even een account aanmaken (dit systeem is niet gekoppeld aan je OU studentnummer en wachtwoord).

Welkom bij het vraag- en antwoord systeem van de onderzoeks-practica van de studie psychologie bij de Open Universiteit.

Houd er, als je een vraag stelt, rekening mee dat je de richtlijnen volgt!

IDA verwerkingsopdracht 2.6.10 in R geeft foutmelding

0 leuk 0 niet-leuks
Ik werk in R version 3.4.2 (2017-09-28).

Bij verwerkingsopdracht 2.6.10 staat bij de uitleg dat de analyses voor elk geslacht apart verkregen kunnen worden met het commando: by(dat\$educationLevel, dat\$sex, freq);

Helaas werkt dit niet. Er komt dan een foutmelding. Als ik het volgende intyp werkt het wel:

> by(unlist(dat[, "educationLevel"], use.names=FALSE), dat$sex, freq);

Kan iemand mij uitleggen waarom dit zo is?
gevraagd 29 november 2017 in Inleiding Data Analyse (IDA) door Mirjam Overeem (220 punten)
bewerkt 29 november 2017 door Mirjam Overeem

1 Antwoord

0 leuk 0 niet-leuks

Ik kan dit vreemd genoeg niet repliceren. Als ik bijvoorbeeld een van de standaard dataframes gebruik, en ik voer dit in in R:

by(mtcars$am, mtcars$cyl, freq);

Dan krijg ik:

mtcars$cyl: 4
            Frequencies Perc.Total Perc.Valid Cumulative
0                     3       27.3       27.3       27.3
1                     8       72.7       72.7      100.0
Total valid          11      100.0      100.0           
-----------------------------------------------------
mtcars$cyl: 6
            Frequencies Perc.Total Perc.Valid Cumulative
0                     4       57.1       57.1       57.1
1                     3       42.9       42.9      100.0
Total valid           7      100.0      100.0           
-----------------------------------------------------
mtcars$cyl: 8
            Frequencies Perc.Total Perc.Valid Cumulative
0                    12       85.7       85.7       85.7
1                     2       14.3       14.3      100.0
Total valid          14      100.0      100.0    

Andersom werkt het ook:

> by(mtcars$cyl, mtcars$am, freq)

mtcars$am: 0
            Frequencies Perc.Total Perc.Valid Cumulative
4                     3       15.8       15.8       15.8
6                     4       21.1       21.1       36.8
8                    12       63.2       63.2      100.0
Total valid          19      100.0      100.0           
-----------------------------------------------------
mtcars$am: 1
            Frequencies Perc.Total Perc.Valid Cumulative
4                     8       61.5       61.5       61.5
6                     3       23.1       23.1       84.6
8                     2       15.4       15.4      100.0
Total valid          13      100.0      100.0

Welke foutmelding krijg je precies?

beantwoord 4 december 2017 door gjp (69,140 punten)

Hieronder de foutmelding. Ik gebruik 'dep' ipv 'dat', dus dat klopt zoals het er nu staat. Het ging ook prima totdat ik dus bij 'by' kwam.

Ik dacht dat het mogelijk aan de versie ligt?

> by(dep$educationLevel, dep$sex, freq)
Error in FUN(dd[x, ], ...) :
  The first argument is not a vector! Did you make a typing error? Remember that R is case sensitive!

Als ik jouw voorbeeld by(mtcarsam,mtcarsam,mtcarscyl, freq)gebruikt doet die het wel gewoon. 

...