忽略大小写使用重复项。

3
我正在使用 R 中的 "duplicated" 函数来删除数据框中的重复行。
 df:

 Name Rank
  A    1
  a    1
  B    2


df[!duplicated(df),]

 Name Rank
  A    1
  a    1
  B    2

第二行与第一行相同,但不会因为考虑大小写的 "A" 和 "a" 而被删除。这种情况怎么处理?谢谢。

7
请查看 ?tolower - Roland
1
我正要说和 @Roland 一样的话。如果您无法更改大小写,请告诉我们,因为有一个解决方法。 - Hack-R
1
@Hack-R 谢谢。那将把所有内容都改为小写,但我不能这样做。 - Jain
1个回答

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),]

或者简单地说
df[!duplicated(tolower(df$Name)),]
  Name Rank
1    A    1
3    B    2

这是基于 Name 的重复项处理。对于整个行,您可以执行以下操作:

df.lower[!duplicated(df.lower),] # changes the case

或者

df[!duplicated(cbind(tolower(df$Name),df$Rank)),] # does not change case

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接