You can use thie Markdown file to help structure your lab.

1 A simple experiment

n_trials=8
n_children=20

m_mono=0.65
sd_mono=0.19
m_bi=0.53
sd_bi=0.28

byers=expand.grid(
  n_trials=n_trials,
  N=n_children,
  Language=c("Monolingual", "Bilingual"),
  Simulations=1
)

byers=
  byers %>%
  mutate(mean=ifelse(Language=="Monolingual", m_mono,m_bi),
         sd=ifelse(Language=="Monolingual", sd_mono,sd_bi)) %>%
  group_by(Language, n_trials,N,Simulations) %>%
  do(subject_prob = rnorm(.$N, .$mean, .$sd)) %>%
  unnest(subject_prob) %>%
  mutate(subject_prob=replace(subject_prob, subject_prob<0, 0.01),
         subject_prob=replace(subject_prob, subject_prob>1, 0.99))

byers = byers %>%
  group_by(Language, n_trials, N, Simulations, subject_prob) %>%
  do(data = rbinom(1, .$n_trials, .$subject_prob)/.$n_trials) %>%
  unnest(data)

print(byers)
## # A tibble: 40 x 6
##       Language n_trials     N Simulations subject_prob  data
##         <fctr>    <dbl> <dbl>       <dbl>        <dbl> <dbl>
##  1 Monolingual        8    20           1    0.4977493 0.500
##  2 Monolingual        8    20           1    0.5001725 0.500
##  3 Monolingual        8    20           1    0.5446431 0.375
##  4 Monolingual        8    20           1    0.5565332 0.625
##  5 Monolingual        8    20           1    0.5765852 0.875
##  6 Monolingual        8    20           1    0.5809686 0.375
##  7 Monolingual        8    20           1    0.6027235 0.875
##  8 Monolingual        8    20           1    0.6508858 1.000
##  9 Monolingual        8    20           1    0.6625936 0.500
## 10 Monolingual        8    20           1    0.7149683 0.750
## # ... with 30 more rows
byers_means = byers %>%
  group_by(Language) %>%
  summarize(Mean = mean(data), SE = sd(data)/sqrt(n()))

print(byers_means)
## # A tibble: 2 x 3
##      Language    Mean         SE
##        <fctr>   <dbl>      <dbl>
## 1 Monolingual 0.73750 0.04789998
## 2   Bilingual 0.66875 0.05610361
ggplot(byers_means, aes(x=Language, y=Mean, fill=Language))+
  geom_bar(stat="identity")+
  geom_linerange(aes(ymin=Mean-SE, ymax=Mean+SE))

n_trials=8

m_mono=0.65
sd_mono=0.19
m_bi=0.53
sd_bi=0.28

byers=expand.grid(
  n_trials=n_trials,
  N=seq(from=10,to=100, by=10),
  Language=c("Monolingual", "Bilingual"),
  Simulations=1:10 #should be 500
)

byers=
 byers %>%
 mutate(mean=ifelse(Language=="Monolingual", m_mono,m_bi),
        sd=ifelse(Language=="Monolingual", sd_mono,sd_bi)) %>%
 group_by(Language, n_trials,N,Simulations) %>%
 do(subject_prob = rnorm(.$N, .$mean, .$sd)) %>%
 unnest(subject_prob) %>%
 mutate(subject_prob=replace(subject_prob, subject_prob<0, 0.01),
        subject_prob=replace(subject_prob, subject_prob>1, 0.99))

byers %>%
 group_by(Language,n_trials,N,Simulations,subject_prob) %>%
 do(data=rbinom(1, .$n_trials, .$subject_prob)/.$n_trials) %>%
 unnest(data)
## # A tibble: 11,000 x 6
##       Language n_trials     N Simulations subject_prob  data
##         <fctr>    <dbl> <dbl>       <int>        <dbl> <dbl>
##  1 Monolingual        8    10           1    0.2380610 0.250
##  2 Monolingual        8    10           1    0.3110628 0.375
##  3 Monolingual        8    10           1    0.3611450 0.500
##  4 Monolingual        8    10           1    0.4938448 1.000
##  5 Monolingual        8    10           1    0.5778773 0.750
##  6 Monolingual        8    10           1    0.6021148 0.375
##  7 Monolingual        8    10           1    0.6821869 0.875
##  8 Monolingual        8    10           1    0.6922809 0.875
##  9 Monolingual        8    10           1    0.7289055 0.750
## 10 Monolingual        8    10           1    0.7999781 0.625
## # ... with 10,990 more rows
summarized_byers = byers %>%
  select(n_trials,N,Simulations,subject_prob,Language) %>%
  group_by(Language,n_trials,N,Simulations, subject_prob) %>%
  do(data=rbinom(1, .$n_trials, .$subject_prob)/.$n_trials) %>%
  unnest(data) %>%
  select(Language,N,data,Simulations,n_trials,subject_prob) %>%
  group_by(N,Simulations) %>% 
  do(p_value = summary(lm(data~Language, data=.))$coefficient[2,4]) %>%
  unnest(p_value) %>%
  mutate(significant=ifelse(p_value<0.05, 1, 0)) %>%
  group_by(N) %>%
  summarise(N_sims=length(p_value), proportion_significant=sum(significant)/N_sims)

summarized_byers
## # A tibble: 10 x 3
##        N N_sims proportion_significant
##    <dbl>  <int>                  <dbl>
##  1    10     10                    0.1
##  2    20     10                    0.3
##  3    30     10                    0.2
##  4    40     10                    0.5
##  5    50     10                    0.7
##  6    60     10                    0.6
##  7    70     10                    0.8
##  8    80     10                    0.8
##  9    90     10                    0.8
## 10   100     10                    1.0
ggplot(summarized_byers,
       aes(x=N,
           y=proportion_significant))+
  geom_line()