如何在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
相关产品推荐
相关产品推荐

