查找列中最常见的值并获取其中的一部分

Phi*_*ohn 3 r

我有以下数据集.

Num              Day              Value
1111             Thursday         2
2222             Thursday         2
3333             Thursday         3
1111             Monday           3
1111             Tuesday          3
1111             Wednesday        3
1111             Friday           4
1111             Saturday         5
1111             Sunday           6
2222             Thursday         6
Run Code Online (Sandbox Code Playgroud)

我们可以value使用以下命令获取列中出现的最高值:tail(names(sort(table(data$value))), 1)

我动态地需要获取仅包含此最高值的数据子集.

所以我需要的输出是:

Num              Day              Value
3333             Thursday         3
1111             Monday           3
1111             Tuesday          3
1111             Wednesday        3
Run Code Online (Sandbox Code Playgroud)

akr*_*run 5

您可以使用 subset

 indx <- tail(names(sort(table(df1$Value))),1)
 subset(df1, Value==indx)
Run Code Online (Sandbox Code Playgroud)

或使用 dplyr

 library(dplyr)
 df1 %>% 
   group_by(Value) %>% 
   mutate(N=n()) %>%
   ungroup() %>% 
   filter(N==max(N))
Run Code Online (Sandbox Code Playgroud)

要么

  library(data.table)
  setDT(df1)[, N:=.N, Value][N==max(N)][, N:=NULL]
Run Code Online (Sandbox Code Playgroud)