对此,有for循环或purrr解决方案吗



我正在为一个项目做一些功率计算。代码正在工作,但我的for循环不工作。我有两个问题

a) 有人能告诉我哪里出了问题吗b) 这个有purrr选项吗

install.packages("WebPower")
library(WebPower)

rate <- function(cases,weeks,population){cases/weeks/population}
rate <- rate(cases = 243,weeks = 15,population = 153126)
wp.poisson(exp0 = rate*2,exp1 = 0.5,alpha = 0.05,power = 0.8,alternative ='less',family = 'Poisson')
res_0.5 <- wp.poisson(n = seq(80000, 200000, 10000), exp0 = rate*2,exp1 = 0.5,alpha = 
0.05,alternative ='less',family = 'Poisson')
res_0.4 <- wp.poisson(n = seq(80000, 200000, 10000), exp0 = rate*2,exp1 = 0.4,alpha = 
0.05,alternative ='less',family = 'Poisson')
res_0.3 <- wp.poisson(n = seq(80000, 200000, 10000), exp0 = rate*2,exp1 = 0.3,alpha = 
0.05,alternative ='less',family = 'Poisson')
res_0.2 <- wp.poisson(n = seq(80000, 200000, 10000), exp0 = rate*2,exp1 = 0.2,alpha = 
0.05,alternative ='less',family = 'Poisson')}
for(i in seq(0.2,0.5,0.1)){
paste0('res_',i) <- wp.poisson(n = seq(80000, 200000, 10000), exp0 = rate*2,exp1 = i,alpha = 
0.05,alternative ='less',family = 'Poisson')}

如果我们需要循环,请在exp1值上循环。最好将输出存储在list中,而不是在全局环境中创建多个对象。

v1 <- c(0.5, 0.4, 0.3, 0.2)
out <- lapply(v1, function(ex)
wp.poisson(n = seq(80000, 200000, 10000), exp0 = rate*2,exp1 = ex,
alpha = 0.05,alternative ='less',family = 'Poisson'))
names(out) <- paste0('res_', v1)
list2env(out, .GlobalEnv)

purrr中的map

library(purrr)
out <- map(v1, ~ .x
wp.poisson(n = seq(80000, 200000, 10000), exp0 = rate*2,exp1 = .x,
alpha = 0.05,alternative ='less',family = 'Poisson'))

然后在进行CCD_ 6 之前更改CCD_


for循环中,我们需要assign

for(i in seq(0.2,0.5,0.1)){
assign(paste0('res_',i), wp.poisson(n = seq(80000, 200000, 10000), 
exp0 = rate*2,exp1 = i,alpha = 
0.05,alternative ='less',family = 'Poisson'))
}

相关内容

最新更新