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

如何在R expss包中将tab_cpct结果从行转置为列

解决expss包生成横向百分比表格的问题

要得到你想要的横向表格格式,无需事后转置,直接调整expss表格的维度设置,让问题(q1/q2/q3)作为行、选项(1/2/3)作为列,同时按行计算各选项的百分比即可。

正确代码实现

library(expss)
df <- data.frame(repid=c(1:5), 
                 q1=c(1,3,2,1,3), 
                 q2=c(2,3,1,1,2), 
                 q3=c(2,2,3,1,2))

df %>% 
    tab_rows(q1, q2, q3) %>%  # 将q1-q3设为表格行维度
    tab_cols(val_lab(q1, q2, q3)) %>%  # 将变量的共同取值1-3设为表格列维度
    tab_stat_cpct(total_row_position = "none") %>%  # 计算行内百分比,隐藏总计行
    tab_pivot(stat_position = "inside_rows")  # 调整透视格式,将百分比值填入对应单元格

输出结果

1   2   3
q1     40  20  40
q2     40  40  20
q3     20  60  20

关键逻辑说明

  • tab_rows(q1, q2, q3):替换原代码的tab_cells,将每个问题作为表格的行主体
  • tab_cols(val_lab(q1, q2, q3)):自动识别三个问题的共同选项,统一作为表格的列
  • tab_stat_cpct:默认按行计算百分比,正好匹配“每个问题下各选项的占比”需求
  • tab_pivot(stat_position = "inside_rows"):确保百分比值直接填充到行与列的交叉单元格中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 08:55:16