R,删除以变量值为条件的重复行

时间:2018-07-30 17:06:38

标签: r dplyr

这是我在这里的第一篇文章。我有一个很大的数据集,我试图根据指定变量之一(ERRaw)的值删除重复的行。当我使用以下代码时,所得数据集将排除原始情况中没有重复项的某些情况-不明白原因。我需要保留所有单例情况,只删除重复项。请帮忙!

new_data <- data_with_dups %>% 
  group_by(StudentID, District) %>% 
  distinct(StudentID, ERRaw, .keep_all = T) %>%
  top_n(1, ERRaw) 

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为这些方法都应该起作用。如果您提供可复制/可粘贴的示例数据,我将进行测试并确保。

# group_by and top_n
new_data <- data_with_dups %>% 
  group_by(StudentID, District) %>% 
  arrange(desc(ERRaw)) %>%
  top_n(1) 

# base R sort, !duplicated
new_data = data_with_dups[order(data_with_dups$ERRaw, decreasing = TRUE), ]
new_data = new_data[!duplicated(new_data[c("StudentID", "District")]), ]