打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
R语言一行代码实现找出众数
userphoto

2022.12.21 四川

关注

R语言里面没有自带求众数的函数,那么怎么办呢?只有自己手动结合其它函数求出众数了。

众所周知,众数就是一组数据中出现次数最多的数据,我们可以考虑用table()这个频率函数。

首先说一下table()这个函数的用法

> a <- c(1,2,2,3,2,4,3,3,2,3,1,4,5,6)

我们先用table()函数求出每个数据的频数。

>b <- table(a)

b

1 2 3 4 5 6

2 4 4 2 1 1

显然,是2,3出现次数最多,都出现了4次。

> names(b)

[1] "1" "2" "3" "4" "5" "6"

查看了这些原始数据

> as.numeric(b)

[1] 2 4 4 2 1 1

查看了对应的频率

下面就慢慢分析怎么用一句代码实现众数。

(1)、> b == max(b)

a

    1     2     3     4     5     6

FALSE  TRUE  TRUE FALSE FALSE FALSE

(2)、> names(b)

[1] "1" "2" "3" "4" "5" "6"

(3)、> names(b)[b == max(b)]

[1] "2" "3"

这样我们就可以考虑这样做:

> as.numeric(names(table(a))[table(a) == max(table(a))])

[1] 2 3

这样就求出了一组数据的众数!

式子还是很复杂的,我们也可以考虑把它写成一个函数,否则太复杂了。

zhongshu <- function(x)

{

return(as.numeric(names(table(x))[table(x) == max(table(x))]))

}

我们来调用这个函数看看,发现是对的哦!

> zhongshu(a)

[1] 2 3

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
R语言中的vector(向量),array(数组)总结
用Python研究了三千套房子,告诉你究竟是什么抬高了房价?
代码补全
干货|用R实现批量差异分析(t检验和方差分析)
SQL SERVER将数据移到另一个文件组之后清空文件组并删除文件组
R语言中因子(factor)转换成数值型(numeric)出错
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服