我想要对数据进行去重,保留出现最频繁的行。如果存在平局,则返回任意一行即可,按照字母或数字顺序排列。我希望按照id
和var
分组进行处理。
最小可重现示例:
df <- data.frame(
id = rep("a", 8),
var = c(rep("b", 4), rep("c", 4)),
val = c("d", "d", "d", "e", "f", "f", "g", "g")
)
> df
id var val
1 a b d
2 a b d
3 a b d
4 a b e
5 a c f
6 a c f
7 a c g
8 a c g
Should be:
id var val
1 a b d
2 a c f
我正在处理大数据集和 tidyverse
管道链,因此最好使用 dplyr
解决方案。
a c f
和a c g
之间随机决定。 - Mark Whiteslice(sample(1:n(), 1)
来代替slice(1)
,对吗? - Mark White