我已经将 CSV
文件读入R data.frame . 某些行在其中一列中具有相同的元素 . 我想删除该列中重复的行 . 例如:
platform_external_dbus 202 16 google 1
platform_external_dbus 202 16 space-ghost.verbum 1
platform_external_dbus 202 16 localhost 1
platform_external_dbus 202 16 users.sourceforge 8
platform_external_dbus 202 16 hughsie 1
我只想要其中一行,因为其他行在第一列中具有相同的数据 .
8 回答
只需将数据框与您需要的列隔离,然后使用唯一函数:D
对于来这里寻找重复行删除的一般答案的人,请使用
!duplicated()
:回答来自:Removing duplicated rows from R data frame
dplyr包中的函数
distinct()
执行任意重复删除,允许指定重复变量(如本问题中所述)或考虑所有变量 .Data:
Remove rows where specified columns are duplicated:
Remove rows that are complete duplicates of other rows:
data.table
包还有自己的unique
和duplicated
方法以及一些附加功能 .unique.data.table
和duplicated.data.table
方法都有一个额外的by
参数,允许您分别传递character
或integer
列名称或其位置向量这些方法的另一个重要特征是对较大数据集的巨大性能提升
使用
sqldf
:解:
输出:
或者您可以使用
tidyr
将cols 4和5中的数据嵌套到一行中:现在删除了col 2和3副本以进行统计分析,但是您已将col 4和5数据保存为tibble,并且可以使用
unnest()
在任何时刻返回到原始数据帧 .一般答案可以是例如:
输出:
你也可以使用
dplyr
的distinct()
功能!它往往比其他选项更有效,特别是如果你有大量的观察 .