使用重复项时忽略大小写

Jai*_*ain 3 r duplicates dataframe

我正在使用 R 中的重复函数来删除数据框中的重复行。

 df:

 Name Rank
  A    1
  a    1
  B    2


df[!duplicated(df),]

 Name Rank
  A    1
  a    1
  B    2
Run Code Online (Sandbox Code Playgroud)

第二行与第一行相同,但不会仅仅因为考虑了“A”和“a”的大小写而被删除。这有什么转折呢?谢谢。

Hac*_*k-R 5

# If it's okay to change the case
df.lower      <- df
df.lower$Name <- tolower(df$Name)

df.lower[!duplicated(df.lower$Name),]

# If you don't want to change the case
df[!duplicated(df.lower$Name),]
Run Code Online (Sandbox Code Playgroud)

或者简单地

df[!duplicated(tolower(df$Name)),]
Run Code Online (Sandbox Code Playgroud)
  Name Rank
1    A    1
3    B    2
Run Code Online (Sandbox Code Playgroud)

那是基于的重复数据删除Name。对于整行你可以这样做:

df.lower[!duplicated(df.lower),] # changes the case
Run Code Online (Sandbox Code Playgroud)

或者

df[!duplicated(cbind(tolower(df$Name),df$Rank)),] # does not change case
Run Code Online (Sandbox Code Playgroud)