为了账号安全,请及时绑定邮箱和手机立即绑定

删除重复行

删除重复行

GCT1015 2019-06-21 15:23:40
删除重复行我读过CSV文件放入R数据帧中。一些行在其中一个列中具有相同的元素。我想删除该列中重复的行。例如:platform_external_dbus          202           16                     google        1platform_external_dbus          202           16         space-ghost.verbum        1platform_external_dbus          202           16                  localhost        1platform_external_dbus          202           16          users.sourceforge        8platform_external_dbus          202           16                    hughsie        1我只想要这些行中的一行,因为其他行在第一列中有相同的数据。
查看完整描述

3 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

只需将数据帧与所需的列隔离,然后使用唯一的函数:d。

# in the above example, you only need the first three columnsdeduped.data <- unique( yourdata[ , 1:3 ] )
# the fourth column no longer 'distinguishes' them, # so they're duplicates and thrown out.


查看完整回答
反对 回复 2019-06-21
?
慕斯王

TA贡献1864条经验 获得超2个赞

对于来此寻找重复行删除的一般答案的人,请使用!duplicated():


a <- c(rep("A", 3), rep("B", 3), rep("C",2))

b <- c(1,1,2,4,1,1,2,2)

df <-data.frame(a,b)


duplicated(df)

[1] FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE


> df[duplicated(df), ]

  a b

2 A 1

6 B 1

8 C 2


> df[!duplicated(df), ]

  a b

1 A 1

3 A 2

4 B 4

5 B 1

7 C 2

答复:从R数据帧中删除重复行


查看完整回答
反对 回复 2019-06-21
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

功能distinct()dplyr包执行任意重复删除,允许指定重复变量(如本问题)或考虑所有变量。

数据:

dat <- data.frame(a = rep(c(1,2),4), b = rep(LETTERS[1:4],2))

删除指定列重复的行:

library(dplyr)dat %>% distinct(a, .keep_all = TRUE)

  a b1 1 A2 2 B

删除与其他行完全重复的行:

dat %>% distinct

  a b1 1 A2 2 B3 1 C4 2 D


查看完整回答
反对 回复 2019-06-21
  • 3 回答
  • 0 关注
  • 681 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信