Spotfire中多列Yes/No数量统计问题求助
在Spotfire中统计多列Yes/No数量的解决方案
以下三种方法均可实现你要的统计效果,按需选择:
方法一:用内置交叉表快速实现(无需脚本)
- 插入交叉表,将所有问题列(如Q1、Q2)拖至「列」区域,将每个问题列的回答(Yes/No)拖至「行」区域,再把ID列拖至「值」区域,选择计数(Count)。此时会得到纵向的统计结果:
Q1 Q2 Yes 2 1 No 1 2 - 选中交叉表右键选择转置,即可得到横向的目标布局,最后调整列名格式为「Q1 - Yes」这类即可。
方法二:用R脚本生成目标表格(适合批量处理多列)
如果需要直接生成目标结构的表格,可通过R脚本先将数据转长统计,再转宽输出:
library(tidyr) library(dplyr) # 读取Spotfire中的数据表(替换为你的数据表名称) df <- DataTable # 将问题列转为长格式 long_data <- df %>% pivot_longer(cols = starts_with("Q"), names_to = "Question", values_to = "Response") # 统计每个问题的Yes/No数量 summary_data <- long_data %>% count(Question, Response) # 转为宽格式,生成目标结构 result_data <- summary_data %>% pivot_wider(names_from = c(Question, Response), values_from = n, names_sep = " - ") # 将结果返回给Spotfire result_data
在Spotfire中运行该脚本后,输出的数据集就是你需要的统计表格。
方法三:用计算列逐个统计(适合列数较少的场景)
针对每个问题的Yes/No分别创建计算列:
- Q1 - Yes:
CountIf([Q1] = "Yes") - Q1 - No:
CountIf([Q1] = "No") - Q2 - Yes:
CountIf([Q2] = "Yes") - Q2 - No:
CountIf([Q2] = "No")
将这些计算列添加到表格中,即可直接看到对应统计值。
内容的提问来源于stack exchange,提问作者Niti
相关产品推荐
相关产品推荐

