R 如何找到&;是否删除数据帧中的重复项?
我有以下数据框,恰好是NBA选秀数据:R 如何找到&;是否删除数据帧中的重复项?,r,R,我有以下数据框,恰好是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
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中查找并删除那些重复的行。出于显而易见的原因,剩余的副本有着重要的用途,必须保留。您可以通过使用
duplicated
或unique()来实现这一点。
data.table
package中的new_df在unique
函数中有一个by
参数
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
您也可以使用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
或
这不是只返回一个向量吗?它只返回一列:)是的,我正在本地尝试,我有一段时间没有使用R。但是您可以通过使用duplicated()
和unique()
来实现。您的示例数据不是很好,因为简单的unique(df)
也会返回所需的输出@David还有一种方法可以解释时间序列中的重复。想象一下上面的数据框,而不是你的草稿年。因此,由于明显的原因,在卡雷尔比赛期间,必须有一名球员为一支或多支球队比赛。但是我怎么才能发现一个球员在一年内被错误计算了两次,我不知道我是否理解你的问题。但是您可以通过添加任意多的变量到by
,例如unique(setDT(df),by=c(“播放年份”,playerid”)
要扩展到基数R中的多个变量,您可以这样做:dat[!duplicated(dat[c(“播放年份”,“草稿年份”),]
df %>%
group_by(playerid) %>%
filter(row_number()==1)