如何在R语言中统计非数值元素?含字母向量统计示例
在R语言中统计非数值向量的元素出现次数
嗨,这个需求在R里处理起来非常简单,我给你分享几个最常用的方法,都能轻松得到你想要的结果:
方法1:使用Base R自带的table()函数
这是最直接、不需要额外安装包的方法,完全适配你的场景:
首先定义你的向量:
v <- c("M", "W", "M", "M", "M", "W", "M", "X", "X", "M", "X", "M", "M", "M", "W")
然后直接调用table()函数:
table(v)
运行后会得到正好符合你预期的输出:
v M W X 9 3 3
方法2:用dplyr包的count()函数(适配tidyverse工作流)
如果你平时习惯用tidyverse系列工具,dplyr的count()能输出数据框格式的结果,方便后续进一步处理:
先确保安装并加载dplyr包(没装过的话先运行install.packages("dplyr")):
library(dplyr) # 将向量转为数据框后统计 data.frame(v) %>% count(v, sort = TRUE)
输出是整洁的结构化结果,sort = TRUE还会帮你按出现次数从高到低排序:
v n 1 M 9 2 W 3 3 X 3
方法3:用janitor包的tabyl()函数(带额外统计信息)
如果需要更丰富的统计维度(比如元素占比),janitor包的tabyl()是不错的选择:
先安装加载janitor(install.packages("janitor")):
library(janitor) tabyl(v)
输出会包含元素、次数和占比,信息更全面:
v n percent M 9 0.6 W 3 0.2 X 3 0.2
以上几种方法都能完美解决你的问题,看你习惯哪种工作流就选哪种~
内容的提问来源于stack exchange,提问作者dolu28
相关产品推荐
相关产品推荐

