如何将P值参考表关联到Tableau动态聚合计算整数字段?
解决Tableau聚合字段关联P值参考表的问题
方案1:硬编码条件映射计算字段
直接把P值表的样本量-P值对应规则写入计算字段,用CASE语句实现精准匹配:
INT( CASE [聚合人数] WHEN 10 THEN IIF([显著性水平] = 0.05, 0.23, 0.11) WHEN 20 THEN IIF([显著性水平] = 0.05, 0.15, 0.07) WHEN 30 THEN IIF([显著性水平] = 0.05, 0.12, 0.05) -- 依次添加所有样本量对应的P值规则 ELSE NULL END )
- 优点:无需调整数据源,直接在计算字段中完成匹配
- 适用场景:样本量范围较小、对应规则固定的情况
- 注:外层
INT()用于将P值转为整数,可根据需求调整取整方式(如ROUND())
方案2:嵌入参考数据到主数据源
将P值表的所有行(样本量、α=0.05的P值、α=0.01的P值)复制粘贴到主数据源末尾,新增数据类型字段标记业务数据/参考数据,再用LOD表达式关联匹配:
- 主数据源新增字段
数据类型:业务数据行填"业务",参考表行填"参考" - 创建计算字段提取对应P值:
INT( {FIXED [聚合人数], [显著性水平] : MAX(IF [数据类型] = "参考" THEN [P值] END)} )
- 筛选器中保留
数据类型="业务"的行,即可得到每个聚合人数对应的整数P值结果
方案3:区间式条件判断(适用于连续样本量)
如果P值随样本量呈规律性区间变化,用IF-ELSE区间替代精准匹配:
INT( IF [聚合人数] < 10 THEN IIF([显著性水平] = 0.05, 0.3, 0.18) ELSEIF [聚合人数] BETWEEN 10 AND 29 THEN IIF([显著性水平] = 0.05, 0.23, 0.11) ELSEIF [聚合人数] >=30 THEN IIF([显著性水平] = 0.05, 0.12, 0.05) ELSE NULL END )
内容的提问来源于stack exchange,提问作者SarahCstats
相关产品推荐
相关产品推荐

