如何利用R语言计数

本文介绍了在R语言中统计对象频数的多种方法,包括常用table()函数之外的实用技巧,帮助用户更高效地完成数据统计工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在工作中遇到统计数据的问题,简单来说就是统计对象的频数,当然大部分人都会选择用table(),但其实还有很多简单实用的方法,根据网上的资源,现在收集整理如下:

> numbers <- c(1,1,1,4,4,5,6,6,8,8,10,15,15,17,18,21,21,453,435,324,34,456,56,567,65,34,435)
> as.data.frame(table(numbers))  ##用as.data.frame()函数把对象变成数据框,这样看起来比较方便
   numbers Freq
1        1    3
2        4    2
3        5    1
4        6    2
5        8    2
6       10    1
7       15    2
8       17    1
9       18    1
10      21    2
11      34    2
12      56    1
13      65    1
14     324    1
15     435    2
16     453    1
17     456    1
18     567    1
> a <- rle(sort(numbers))###这个函数是统计向量或者等价值的长度
> a
Run Length Encoding
  lengths: int [1:18] 3 2 1 2 2 1 2 1 1 2 ...
  values : num [1:18] 1 4 5 6 8 10 15 17 18 21 ...
> data.frame(number=a$values, n=a$lengths)
   number n
1       1 3
2       4 2
3       5 1
4       6 2
5       8 2
6      10 1
7      15 2
8      17 1
9      18 1
10     21 2
11     34 2
12     56 1
13     65 1
14    324 1
15    435 2
16    453 1
17    456 1
18    567 1
> s<-summary (as.factor(numbers)) ####这个方法就更简单了,先把向量转换为因子类型,直接一个summary()搞定。
> as.data.frame(cbind(Number = names(s),Freq = s), row.names = 1:length(s))
   Number Freq
1       1    3
2       4    2
3       5    1
4       6    2
5       8    2
6      10    1
7      15    2
8      17    1
9      18    1
10     21    2
11     34    2
12     56    1
13     65    1
14    324    1
15    435    2
16    453    1
17    456    1
18    567    1
> library(plyr) ###这个需要调用plyr包中的函数count,plyr功能极其强大,可用”数据加工厂“一词形容,它会把一个大问题拆分成可以操作的小问题,独立对小问题进行运算。
> count(numbers)
     x freq
1    1    3
2    4    2
3    5    1
4    6    2
5    8    2
6   10    1
7   15    2
8   17    1
9   18    1
10  21    2
11  34    2
12  56    1
13  65    1
14 324    1
15 435    2
16 453    1
17 456    1
18 567    1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值