我有一个城市人口的数据框。在该数据中,我存储城市名称,县和州。不幸的是,在我的数据中有一个条目的重复项。重复项并不完全相同,因为它们所包含的城市位置坐标或人口略有不同。因此,典型的distinct()
在这里不起作用。有没有办法我可以删除并删除具有相同城市,县和州的其他行,但是不在乎其他变量是唯一的还是共享的?
答案 0 :(得分:1)
要解释我的评论并根据您的要求将其转变为答案:-
df[!duplicated(df[,c('city','country', 'state')]),]
df[,c('city','country', 'state')]
子集city
,country
和state
的所有行。 r
中的一个子集用作data_frame[row, column]
。将row
选择器保留为空将返回数据框中的所有行,并且由于我们要传递多个列,因此将其包装在c()
中。
!duplicated()
如果TRUE
,city
和country
不是重复的,则返回逻辑向量state
,如果是重复的,则返回FALSE
。
然后,将其包装在df
中作为row selector
并返回所有columns
。
df[!duplicated(df[,c('city','country', 'state')]),]
!duplicated(df[,c('city','country', 'state')])
将用作行选择器,而将列选择器保留为空将返回所有列。 !
是否定标记。
简而言之,将返回!duplicated(df[,c('city','country', 'state')])
为TRUE
(不重复的行)的所有列。
希望您可以以此为基础。