选择表格中某个值的名称(例如最大值)

我有一个数字向量.我们称之为mydata:

str(mydata)
# num [1:236] 2 1 1 2 2 1 2 1 2 2 ...

然后我可以使用表计算每个值:

table(mydata)
# mydata
#  1    2    9  10 
# 20  200   14   2

现在,我想选择具有最高计数的值(在本例中为“2”).

通过使用,我可以找到最高计数(例如在这种情况下为200)
 max function:max(table(mydata)).但是如何获得与表中最大计数相关的名称,即“2”?

最佳答案 表非常类似于列表或数据框,因为它具有可通过向量子集访问的值和名称(属性).

> mydata <- c(rep(1, 20), rep(2, 200), rep(9, 14), rep(10, 2))
> tab <- table(mydata)
> tab
## mydata
##   1   2   9  10 
##  20 200  14   2
> names(tab)
## [1] "1"  "2"  "9"  "10" 
> c(val = names(tab)[tab == max(tab)], freq = max(tab))
##  val  freq 
##  "2" "200"

以下是等同的

> tab[ names(tab)[tab == max(tab)] ]
##   2 
## 200
> tab["2"]
##   2
## 200

关于对象的其他有用的东西在其属性中描述

> attributes(tab)
$dim
[1] 4

$dimnames
$dimnames$mydata
[1] "1"  "2"  "9"  "10"

$class
[1] "table"
点赞