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

在R语言中从数据集生成绘制华夫图所需的命名向量

直接从数据集生成Waffle图所需的命名计数向量

嘿,我懂你想要简化这个步骤——不用手动逐个写sum(data$Colour == "XXX"),直接从原数据集生成符合waffle()要求的命名整数向量对吧?这里有几个简洁的R方案,帮你一步到位:

方法1:用基础R的table()函数(最简便)

基础R的table()函数天生就是干这个的:它会自动统计向量中各元素的出现频数,并且返回的结果自带元素名称作为向量名,完美匹配waffle()的参数要求。

# 直接统计颜色频数
colour_counts <- table(data$Colour)
# 查看结果:Red  Blue Green 
#           2     1     1 
waffle(colour_counts)

这个方法完全不需要额外包,一行代码就能得到你要的命名向量,和你手动写的c(Red = 2, Blue = 1, Green = 1)效果一模一样。

方法2:用tidyverse工具(适合复杂场景)

如果你平时习惯用tidyverse生态,可以用dplyr::count()统计频数,再用tibble::deframe()把结果转换成命名向量——这个方法在需要过滤、分组或者强制保留某些零频数类别时更灵活:

library(tidyverse)

# 统计频数并转为命名向量
colour_counts <- data %>%
  count(Colour) %>%
  deframe() # deframe将两列数据转为「列1是名称,列2是值」的向量

waffle(colour_counts)

如果你的环境里还没装tidyverse,先运行install.packages("tidyverse")就行。

两种方法都能直接从原数据集生成waffle()需要的输入,再也不用手动统计每个类别的数量啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:27:19