根据列R中的重复项删除行

时间:2015-03-30 14:55:04

标签: r dplyr

我有一个数据框,其中包含由应用程序编号" Apno"标识的条目。数据框中有许多重复项,其中大部分信息是相同的,但是一个或两个部分略有不同,使得直接unique()命令不适用于我的目的。好的是具有相同值的行,Apno引用相同的东西,并不重要的是保留哪个条目。在保留其他数据的同时,我只需要独特的apno。示例:

Apno  Name   Location

123   Gary   New York
124   Larry  Boston
123   Garry  NYC
155   Jerry  San Francisco
122   Mary   Chicago
123   Gari   NY
124   Lary   Bos. 

在Apno上过滤后:

Apno  Name   Location

123   Gary   New York
124   Larry  Boston
155   Jerry  San Francisco
122   Mary   Chicago

1 个答案:

答案 0 :(得分:4)

尝试

library(dplyr)
df1 %>% 
    group_by(Apno) %>%
    slice(1L)

base R选项

df1[!duplicated(df1$Apno),]

数据

df1 <- structure(list(Apno = c(123L, 124L, 123L, 155L, 122L, 123L, 124L
 ), Name = c("Gary", "Larry", "Garry", "Jerry", "Mary", "Gari", 
"Lary"), Location = c("New York", "Boston", "NYC", "San Francisco", 
"Chicago", "NY", "Bos.")), .Names = c("Apno", "Name", "Location"
), class = "data.frame", row.names = c(NA, -7L))