如何重复一个过程N次,但在做下一个之前考虑之前的结果?

问题描述 投票:0回答:0

我需要重复所有这些 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 次,但似乎每次都是一个新的循环,不考虑以前的结果。

r rstudio static-analysis population
© www.soinside.com 2019 - 2024. All rights reserved.