Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
考虑到dataframe的一列中存在重复项,如何删除dataframe中的行_R - Fatal编程技术网

考虑到dataframe的一列中存在重复项,如何删除dataframe中的行

考虑到dataframe的一列中存在重复项,如何删除dataframe中的行,r,R,嗨,亲爱的,我对列中有重复项的数据帧有点问题。我想删除列显示重复项的行。例如,我的数据帧如下所示: Value City Card.Type ID 100 Michigan Silver 001 120 Angeles Gold 002 NA Kansas Gold 002 500 Michigan Silver 001 800 Texas Basic 005 Value

嗨,亲爱的,我对列中有重复项的数据帧有点问题。我想删除列显示重复项的行。例如,我的数据帧如下所示:

Value   City    Card.Type   ID
100   Michigan    Silver    001
120   Angeles     Gold      002
NA    Kansas      Gold      002
500   Michigan    Silver    001
800   Texas       Basic     005
 Value   City    Card.Type   ID
 100   Michigan    Silver    001
 120   Angeles     Gold      002
 800   Texas       Basic     005
您可以看到在ID列中有两个重复项,一个用于001,另一个用于002。我使用的是独特的功能,但我不能删除重复的。我想找一个这样的人:

Value   City    Card.Type   ID
100   Michigan    Silver    001
120   Angeles     Gold      002
NA    Kansas      Gold      002
500   Michigan    Silver    001
800   Texas       Basic     005
 Value   City    Card.Type   ID
 100   Michigan    Silver    001
 120   Angeles     Gold      002
 800   Texas       Basic     005
谢谢您的帮助。

使用复制的功能

比如:

data.subset <- data[!duplicated(data$ID),]
Duplicated返回真/假向量。向量中的第二个重复条目将始终返回TRUE。

使用函数duplicated

比如:

data.subset <- data[!duplicated(data$ID),]

Duplicated返回真/假向量。向量中的第二个重复条目将始终返回TRUE。

只能使用其正版本。使用构造的危险在于,当没有任何行或项与测试匹配时,其结果为numeric0,-numeric0将返回“nothing”,而正确的结果为“everything”。使用:

 dat[!duplicated(dat), ]  
在这种情况下,没有重复的行,但是OP认为应该删除一些行,所以很明显,只有两三列在考虑之中。这很容易适应。只需在2列或3列上执行重复测试:

 dat[ !duplicated(dat[ , 2:3] ) , ]

只能使用其正面版本。使用构造的危险在于,当没有任何行或项与测试匹配时,其结果为numeric0,-numeric0将返回“nothing”,而正确的结果为“everything”。使用:

 dat[!duplicated(dat), ]  
在这种情况下,没有重复的行,但是OP认为应该删除一些行,所以很明显,只有两三列在考虑之中。这很容易适应。只需在2列或3列上执行重复测试:

 dat[ !duplicated(dat[ , 2:3] ) , ]

我不知道duplicated会在这样的数据框中组合列。Nice.duplicated是通用的,并且有一个data.framemethod@dayne,键入methodsduplicated以查看可用的方法。我不知道duplicated会在这样的数据框中组合列。Nice.duplicated是通用的,并且有一个data.framemethod@dayne,键入methodsduplicated以查看可用的方法。