在R中如何对dataframe列进行汇总生成指定交叉透视表?
R实现指定交叉表的两种方案
方案1:基础R实现(无需额外安装包)
直接用xtabs()函数即可生成符合要求的交叉表,代码如下:
# 生成交叉表 crosstab <- xtabs(Col_C ~ Col_A + Col_B, data = df1) # 打印查看结果 print(crosstab)
运行后输出结构和预期完全一致:
Col_B Col_A 4 5 1 1 3 2 2 4
方案2:tidyverse生态实现(适合后续数据处理)
用tidyr包的pivot_wider()函数做长表转宽表,代码如下:
# 未安装包先运行 install.packages("tidyr") library(tidyr) # 转换为宽表格式 crosstab_df <- df1 %>% pivot_wider( names_from = Col_B, values_from = Col_C ) # 查看结果 print(crosstab_df)
运行输出结果:
# A tibble: 2 × 3 Col_A `4` `5` <dbl> <dbl> <dbl> 1 1 1 3 2 2 2 4
如果需要实现示例里带分层表头的美化打印效果,可以搭配gt包或者knitr::kable()函数调整输出样式。
内容的提问来源于stack exchange,提问作者Aswin Seshadri
相关产品推荐
相关产品推荐

