我需要重复所有这些 100 次,以便为 heterozygousHWE 提供不同的值,但我必须在执行下一步之前考虑可预测的结果。我的意思是做循环 2 我需要得到我在第一个循环中的结果,因为 heterozygousHWE 必须在每个循环中减少。
n11 <- 10
n12 <- 12
n22 <- 3
#total de individuos
N <- n11 + n12 + n22
#calculos de frecuecnias alelicas
n1 <- (2*n11) + n12
n2 <- (2*n22) + n12
p1 = n1 /(2*N)
p1
p2 = 1- p1
p2
#TODO: Calcular p-value prueba chi cuadrada
#ESPERADOS
n11e= N * (p1^2)
n12e = 2*N *p1*p2
n22e= N*((p2)^2)
#observados - esperados
restn11 = n11- n11e
restn11
restn12 = n12- n12e
restn12
restn22 = n22- n22e
restn22
# (O-E)^2/2
x11= (restn11^2)/n11e
x11
x12= (restn12^2)/n12e
x12
x22= (restn22^2)/n22e
x22
#suma total
TOTAL = x11 + x12 + x22
#x^2
TOTAL
#valor P (p-value)
vp1gl= 0.4549
vp2gl= 1.3863
pchisq(TOTAL ,df=1)
#Simular poblacion HWE
#numbers GENERA 200 n aleatorios
#A1 cuantas personas son mayores a p1
numbers <- runif(N)
numbers
a1 <- numbers>p1
a1
numbers <- runif(N)
a2 <- numbers>p1
a2
genotypes <- a1 + a2
heterozygousHWE <- sum (genotypes==1)
heterozygousHWE
get.bias <- function(i) {
numbers <- runif(N)
numbers
a1 <- numbers>p1
a1
numbers <- runif(N)
a2 <- numbers>p1
a2
genotypes <- a1 + a2
heterozygousHWE <- sum (genotypes==1)
heterozygousHWE
}
set.seed(1)
result <- t(sapply(1:1000,get.bias))
m <- head(result)
m
考虑到之前的结果,我不知道如何实现循环
我知道如何重复这个过程 100 次,但似乎每次都是一个新的循环,不考虑以前的结果。