我有以下数据集。
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
我们可以使用以下命令获取列value
中出现的最高值:tail(names(sort(table(data$value))), 1)
我动态地需要获取仅包含此最高值的数据子集。
所以我需要的输出是:
Num Day Value
3333 Thursday 3
1111 Monday 3
1111 Tuesday 3
1111 Wednesday 3
答案 0 :(得分:5)
您可以使用subset
indx <- tail(names(sort(table(df1$Value))),1)
subset(df1, Value==indx)
或使用dplyr
library(dplyr)
df1 %>%
group_by(Value) %>%
mutate(N=n()) %>%
ungroup() %>%
filter(N==max(N))
或者
library(data.table)
setDT(df1)[, N:=.N, Value][N==max(N)][, N:=NULL]