计算数据集特征组合严格出现频次并使用ggplot可视化的方法
特征组合频次统计与可视化方案
1. 生成严格出现频次统计表格
首先,为每一行数据标记对应的严格特征组合(仅组合内特征为1,其余为0),再统计各组合的出现次数:
library(dplyr) # 为数据集添加特征组合标签 x$feature_combination <- case_when( x$a == 1 & x$b == 0 & x$c == 0 ~ "仅特征a", x$a == 0 & x$b == 1 & x$c == 0 ~ "仅特征b", x$a == 0 & x$b == 0 & x$c == 1 ~ "仅特征c", x$a == 1 & x$b == 1 & x$c == 0 ~ "仅特征a+b", x$a == 1 & x$b == 0 & x$c == 1 ~ "仅特征a+c", x$a == 0 & x$b == 1 & x$c == 1 ~ "仅特征b+c", x$a == 1 & x$b == 1 & x$c == 1 ~ "特征a+b+c", TRUE ~ "无特征为1" # 可选:不需要全0情况可删除此行 ) # 计算各组合频次并按降序排列 freq_table <- x %>% count(feature_combination, name = "出现频次") %>% arrange(desc(出现频次))
执行后,freq_table即为所需统计表格,包含所有严格特征组合及其出现次数。
2. ggplot可视化最优方案
针对分类频次数据,水平条形图是最优选择(标签可读性更强),搭配频次排序、数值标注和简洁主题,可清晰展示分布:
library(ggplot2) ggplot(freq_table, aes(x = reorder(feature_combination, 出现频次), y = 出现频次)) + geom_bar(stat = "identity", fill = "#2E8B57", alpha = 0.8) + geom_text(aes(label = 出现频次), hjust = -0.1, size = 3.5) + coord_flip() + labs( title = "特征组合严格出现频次统计", x = "特征组合", y = "出现频次" ) + theme_minimal() + theme( plot.title = element_text(hjust = 0.5, size = 14, face = "bold"), axis.title = element_text(size = 12), axis.text = element_text(size = 10) )
可选调整:
- 偏好垂直条形图时,删除
coord_flip(),并将geom_text的hjust改为0.5(数值标签居中于条形顶部)。 - 不需要"无特征为1"组合时,在生成
freq_table时添加filter(feature_combination != "无特征为1")。
内容的提问来源于stack exchange,提问作者GitZine
相关产品推荐
相关产品推荐

