Dear varin sacha

On Sun, May 19, 2019 at 5:14 PM varin sacha via R-help
<r-help@r-project.org> wrote:
>
> Dear Boris,
>
> Great !!!! But what about Mark in your R code ? Don't we have to precise in 
> the R code that mark ranges between 1 to 6 (1 ; 1.5 ; 2 ; 2.5 ; 3 ; 3.5 ; 4 ; 
> 4.5 ; 5 ; 5.5 ; 6) ?

I think Boris is just setting up a framework for you. It is up to you
to decide the actual values. :)
You maybe want to create a MyData object, with the method Boris has
shown, but filling the Mark field with random numbers.

Cheers,
Lei

>
> By the way, to fit a linear mixed model, I use lme4 package and then the lmer 
> function works with the variables like in this example here below :
>
> library(lme4)
> mm=lmer(Mark ~Gender + (1 | School / Class), data=Dataset)
>
> With your R code, how can I write the lmer function to make it work ?
>
> Best,
> S.
>
>
>
>
>
>
>
> Le dimanche 19 mai 2019 à 15:26:39 UTC+2, Boris Steipe 
> <boris.ste...@utoronto.ca> a écrit :
>
>
>
>
>
> Fair enough - there are additional assumptions needed, which I make as 
> follows:
>   - each class has the same size
>   - each teacher teaches the same number of classes
>   - the number of boys and girls is random within a class
>   - there are 60% girls  (just for illustration that it does not have to be 
> equal)
>
>
> To make the dependencies explicit, I define them so, and in a way that they 
> can't be inconsistent.
>
> nS <- 10        # Schools
> nTpS <- 5      # Teachers per School
> nCpT <- 2      # Classes per teacher
> nPpC <- 20      # Pupils per class
> nS * nTpS * nCpT * nPpC == 2000  # Validate
>
>
> mySim <- data.frame(School  = paste0("s", rep(1:nS, each = nTpS*nCpT*nPpC)),
>                     Teacher = paste0("t", rep(1:(nTpS*nS), each = nCpT*nPpC)),
>                     Class  = paste0("c", rep(1:(nCpT*nTpS*nS), each = nPpC)),
>                     Gender  = sample(c("boy", "girl"),
>                                     (nS*nTpS*nCpT*nPpC),
>                                     prob = c(0.4, 0.6),
>                                     replace = TRUE),
>                     Mark    = numeric(nS*nTpS*nCpT*nPpC),
>                     stringsAsFactors = FALSE)
>
>
> Then you fill mySim$Mark with values from your linear mixed model ...
>
> mySim$Mark[i] <- simMarks(mySim[i])  # ... or something equivalent.
>
>
> All good?
>
> Cheers,
> Boris
>
>
>
> > On 2019-05-19, at 08:05, varin sacha <varinsa...@yahoo.fr> wrote:
> >
> > Many thanks to all of you for your responses.
> >
> > So, I will try to be clearer with a larger example. Te end of my mail is 
> > the more important to understand what I am trying to do. I am trying to 
> > simulate data to fit a linear mixed model (nested not crossed). More 
> > precisely, I would love to get at the end of the process, a table (.txt) 
> > with columns and rows. Column 1 and Rows will be the 2000 pupils and the 
> > columns the different variables : Column 2 = classes ; Column 3 = teachers, 
> > Column 4 = schools ; Column 5 = gender (boy or girl) ; Column 6 = mark in 
> > Frecnh
> >
> > Pupils are nested  in classes, classes are nested in schools. The teacher 
> > are part of the process.
> >
> > I want to simulate a dataset with n=2000 pupils, 100 classes, 50 teachers 
> > and 10 schools.
> > - Pupils n°1 to pupils n°2000 (p1, p2, p3, p4, ..., p2000)
> > - Classes n°1 to classes n°100 (c1, c2, c3, c4,..., c100)
> > - Teachers n°1 to teacher n°50 ( t1, t2, t3, t4, ..., t50)
> > - Schools n°1 to chool n°10 (s1, s2, s3, s4, ..., s10)
> >
> > The nested structure is as followed :
> >
> > -- School 1 with teacher 1 to teacher 5 (t1, t2, t3, t4 and t5) with 
> > classes 1 to classes 10 (c1, c2, c3, c4, c5, c6, c7, c8,c9,c10), pupils n°1 
> > to pupils n°200 (p1, p2, p3, p4,..., p200).
> >
> > -- School 2 with teacher 6 to teacher 10, with classes 11 to classes 20, 
> > pupils n°201 to pupils n°400
> >
> > -- and so on
> >
> > The table (.txt) I would love to get at the end is the following :
> >
> >        Class    Teacher    School    gender    Mark
> > 1      c1        t1                s1            boy        5
> > 2      c1        t1                s1            boy        5.5
> > 3      c1        t1                s1            girl        4.5
> > 4      c1        t1                s1            girl        6
> > 5      c1        t1                s1            boy      3.5
> > 6      ...        ....                ....            .....        .....
> >
> > The first 20 rows with c1, with t1, with s1, gender (randomly slected) and 
> > mark (andomly selected) from 1 to 6
> > The rows 21 to 40 with c2 with t1 with s1
> > The rows 41 to 60 with c3 with t2 with s1
> > The rows 61 to 80 with c4 with t2 with s1
> > The rows 81 to 100 with c5 with t3 with s1
> > The rows 101 to 120 with c6 with t3 with s1
> > The rows 121 to 140 with c7 with t4 with s1
> > The rows 141 to 160 with c8 with t4 with s1
> > The rows 161 to 180 with c9 with t5 with s1
> > The rows 181 to 200 with c10 with t5 with s1
> >
> > The rows 201 to 220 with c11 with t6 with s2
> > The rows 221 to 240 with c12 with t6 with s2
> >
> > And so on...
> >
> > Is it possible to do that ? Or am I dreaming ?
> >
> >
> > Le dimanche 19 mai 2019 à 10:45:43 UTC+2, Linus Chen 
> > <linus.l.c...@gmail.com> a écrit :
> >
> >
> >
> >
> >
> > Dear varin sacha,
> >
> > I think it will help us help you, if you give a clearer description of
> > what exactly you want.
> >
> > I assume the situation is that you know what a data structure you
> > want, but do not know
> > how to conveniently create such structure.
> > And that is where others can help you.
> > So, please, describe the wanted data structure more thoroughly,
> > ideally with example.
> >
> > Thanks,
> > Lei
> >
> > On Sat, May 18, 2019 at 10:04 PM varin sacha via R-help
> > <r-help@r-project.org> wrote:
> >>
> >> Dear Boris,
> >>
> >> Yes, top-down, no problem. Many thanks, but in your code did you not 
> >> forget "teacher" ? As a reminder teacher has to be nested with classes. I 
> >> mean the 50 pupils belonging to C1 must be with (teacher 1) T1, the 50 
> >> pupils belonging to C2 with T2, the 50 pupils belonging to C3 with T3 and 
> >> so on.
> >>
> >> Best,
> >>
> >>
> >> Le samedi 18 mai 2019 à 16:52:48 UTC+2, Boris Steipe 
> >> <boris.ste...@utoronto.ca> a écrit :
> >>
> >>
> >>
> >>
> >>
> >> Can you build your data top-down?
> >>
> >>
> >>
> >> schools <- paste("s", 1:6, sep="")
> >>
> >> classes <- character()
> >> for (school in schools) {
> >>  classes <- c(classes, paste(school, paste("c", 1:5, sep=""), sep = "."))
> >> }
> >>
> >> pupils <- character()
> >> for (class in classes) {
> >>  pupils <- c(pupils, paste(class, paste("p", 1:10, sep=""), sep = "."))
> >> }
> >>
> >>
> >>
> >> B.
> >>
> >>
> >>
> >>> On 2019-05-18, at 09:57, varin sacha via R-help <r-help@r-project.org> 
> >>> wrote:
> >>>
> >>> Dear R-Experts,
> >>>
> >>> In a data simulation, I would like a balanced distribution with a nested 
> >>> structure for classroom and teacher (not for school). I mean 50 pupils 
> >>> belonging to C1, 50 other pupils belonging to C2, 50 other pupils 
> >>> belonging to C3 and so on. Then I want the 50 pupils belonging to C1 with 
> >>> T1, the 50 pupils belonging to C2 with T2, the 50 pupils belonging to C3 
> >>> with T3 and so on. The school don’t have to be nested, I just want a 
> >>> balanced distribution, I mean 60 pupils in S1, 60 other pupils in S2 and 
> >>> so on.
> >>> Here below the reproducible example.
> >>> Many thanks for your help.
> >>>
> >>> ##############
> >>> set.seed(123)
> >>> # Génération aléatoire des colonnes
> >>> pupils<-1:300
> >>> classroom<-sample(c("C1","C2","C3","C4","C5","C6"),300,replace=T)  
> >>> teacher<-sample(c("T1","T2","T3","T4","T5","T6"),300,replace=T)  
> >>> school<-sample(c("S1","S2","S3","S4","S5"),300,replace=T)
> >>
> >>> ##############
> >>>
> >>> ______________________________________________
> >>> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
> >>> https://stat.ethz.ch/mailman/listinfo/r-help
> >>> PLEASE do read the posting guide 
> >>> http://www.R-project.org/posting-guide.html
> >>> and provide commented, minimal, self-contained, reproducible code.
> >
> >>
> >> ______________________________________________
> >> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
> >> https://stat.ethz.ch/mailman/listinfo/r-help
> >> PLEASE do read the posting guide 
> >> http://www.R-project.org/posting-guide.html
> >> and provide commented, minimal, self-contained, reproducible code.
>
> ______________________________________________
> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to