You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用map2/pmap计算样本量时返回空列表的问题排查

问题原因与解决方法

问题根源

你用expand.grid()生成的配对矩阵out,默认列名是Var1和Var2,而非你定义的f和p。调用out$f和out$p会返回NULL,map2接收两个空向量,因此返回空列表。

修正方案

方案一:生成配对矩阵时指定列名

给expand.grid()的参数命名,让输出矩阵保留f和p的列名:

f <- seq(0.1, 0.6, 0.1)
p <- seq(0.7, 0.9, length.out=6)
out <- expand.grid(f = f, p = p)  # 显式指定列名

library(pwr)
library(purrr)
map2(.x=out$f, .y=out$p, ~ pwr.anova.test(k=5, f=.x, power=.y))

方案二:使用默认列名调用

直接用expand.grid()生成的默认列名Var1和Var2传入map2:

f <- seq(0.1, 0.6, 0.1)
p <- seq(0.7, 0.9, length.out=6)
out <- expand.grid(f, p)

library(pwr)
library(purrr)
map2(.x=out$Var1, .y=out$Var2, ~ pwr.anova.test(k=5, f=.x, power=.y))

额外优化:直接提取样本量

如果只需要每个参数组合对应的样本量(n),可以用map2_dbl直接提取数值:

map2_dbl(out$f, out$p, ~ pwr.anova.test(k=5, f=.x, power=.y)$n)

内容的提问来源于stack exchange,提问作者spindoctor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 09:52:11