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!

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?
in Inleiding Onderzoek (OIO, PB02x2; was Inleiding Data Analyse, IDA) door (220 punten)
bewerkt door

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?

door (77.6k 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. 

...