Что вы хотите сделать с rnorm
?Одна из возможностей:
single_rt <- function(size1, size2){
x1 <- rnorm(n=size1)
x2 <- rnorm(n=size2)
return((mean(x1)-mean(x2))/sqrt((var(x1)/size2) + (var(x2)/size1)))}
my_rt <- function(n, size1, size2, x1, x2){
replicate(n=n, expr = single_rt(size1=size1, size2 = size2))}
num_reps <- 10000
N1 <-10
N2 <- 10
t.stats <-my_rt(n=num_reps, size1 = N1, size2 = N2)
Если вы внимательно посмотрите на функцию rnorm
, она принимает только 3 аргумента, а не вектор.Если вы хотите возмущать вашу выборку шумом, вам следует поступить иначе.
Если вы хотите использовать функцию sample
, которую я вам советую, вам следует использовать приведенный ниже код:
single_rt_bis <- function(size1, size2, x1 = x1, x2 = x2){
x1 <- sample(x=x1, size =size1, replace = TRUE)
x2 <- sample(x=x2, size =size2, replace = TRUE)
return((mean(x1)-mean(x2))/sqrt((var(x1)/size2) + (var(x2)/size1)))}
my_rt <- function(n, size1, size2, x1, x2){
replicate(n=n, expr = single_rt_bis(size1=size1, size2 = size2, x1 = x1, x2 = x2))}
num_reps <- 10000
N1 <-10
N2 <- 10
t.stats <-my_rt(n=num_reps, size1 = N1, size2 = N2, x1 = cntrl, x2 = strv)
На самом деле, похоже, вы хотите использовать boostrap для имитации разных t-тестов с одним и тем же образцом.Что код выше делает.