我有以下数据框架恰好是NBA选秀数据:
draft_year draft_round teamid playerid draft_from
1961 1 Bos Pol1 Nan
2001 1 LA Ben2 Cal
1967 2 Min Mac2 Nan
2001 1 LA Ben2 Cal
2000 1 C Sio1 Bud
2000 1 C Gio1 Bud
我想找到&仅删除playerid中具有重复项的那些行。由于显而易见的原因,剩下的重复项具有有意义的目的,必须保留。
答案 0 :(得分:2)
您可以使用duplicated
或unique()
new_df <- df[!duplicated( df$playerid), ]
答案 1 :(得分:2)
在data.table
包中,by
函数中有unique
个参数
library(data.table)
unique(setDT(df), by = "playerid")
# draft_year draft_round teamid playerid draft_from
# 1: 1961 1 Bos Pol1 Nan
# 2: 2001 1 LA Ben2 Cal
# 3: 1967 2 Min Mac2 Nan
# 4: 2000 1 C Sio1 Bud
# 5: 2000 1 C Gio1 Bud
答案 2 :(得分:2)
您也可以使用dplyr
library(dplyr)
unique(df, group_by="playerid")
# draft_year draft_round teamid playerid draft_from
#1 1961 1 Bos Pol1 Nan
#2 2001 1 LA Ben2 Cal
#3 1967 2 Min Mac2 Nan
#5 2000 1 C Sio1 Bud
#6 2000 1 C Gio1 Bud
或者
df %>%
group_by(playerid) %>%
filter(row_number()==1)