我想使用map2
或pmap
返回一个样本大小范围,以查找一个大小范围的效应。
我定义了一个效应量向量和一个匹配的可接受功效向量。
f<-seq(0.1, 0.6, 0.1)
p<-seq(0.7, 0.9, length.out=6)
我用expand.grid()
得到一个对矩阵。
out<-expand.grid(f, p)
现在,我想把这个输入到map2
或pmap
(我不确定是哪个)以返回样本大小的向量,但是我目前的工作返回了一个空列表。
我错过了什么?
library(pwr)
library(purrr)
map2(.x=out$f, .y=out$p, ~ pwr.anova.test(k=5, f=.x, power=.y))
2条答案
按热度按时间sd2nnvve1#
我们可以使用
pmap_dbl
:在您的代码中,
map2
正在对两个向量out$f
和out$p
进行迭代,但它没有返回一个命名列表或一个可以组合的向量。purrr
中的pmap_dbl
,通过将.default
参数设置为5(因为k=5)来获得样本大小向量~
,它有两个参数..1
和..2
,这两个参数是该函数第一个和第二个参数的占位符。$n
用于从pwr.anova.test()
函数的输出中提取样本大小n
。然后,将生成的n
值传递给pmap_dbl
函数以进行每次迭代。这将返回效应量和功效的每个组合的样本量向量,如果出现任何错误,将使用默认值5。
68de4m5k2#
您的错误在于未能检查
out
Dataframe 。expand.grid
不假定其参数的名称为列名,因此out
的列名为“Var1”和“Var2”