【问题标题】:remove duplicate base on 2 columns of data [duplicate]根据 2 列数据删除重复项 [重复]
【发布时间】:2019-02-08 07:16:33
【问题描述】:

我有一组数据:

x <- c(rep("A", 3), rep("B", 3), rep("C",2))
y <- c(1,1,2,4,1,1,2,2)
z <- c(rep("E", 1), rep("F", 4), rep("G",3))
df <-data.frame(x,y,z)

如果 x 列和 z 列都重复,我只想删除重复的行。 在这种情况下,应用代码后,第 2,3 行将剩 1 行,第 4,5 行会剩 1 行,第 7,8 行会剩 1 行 怎么做?

【问题讨论】:

  • 不要使用c作为对象的名称,因为c()是一个基本函数。
  • df[!duplicated(df[c(1, 3)]), ]

标签: r


【解决方案1】:

您可以使用一个简单的条件来对数据进行子集化:

x <- c(rep("A", 3), rep("B", 3), rep("C",2))
y <- c(1,1,2,4,1,1,2,2)
z <- c(rep("A", 1), rep("B", 4), rep("C",3))
df <-data.frame(x,y,z)

df
df[!df$x == df$z,] # the ! excludes all rows for which x == z is TRUE

  x y z
2 A 1 B
3 A 2 B
6 B 1 C

编辑:正如@RonakShah 所说,要排除重复的行,请使用

df[!duplicated(df[c("x", "z")]),]

df[!duplicated(df[c(1, 3)]),]

  x y z
1 A 1 A
2 A 1 B
4 B 4 B
6 B 1 C
7 C 2 C

【讨论】:

  • 对不起,我的问题表述有误,请再次参考编辑后的问题。谢谢。
猜你喜欢
  • 2021-02-09
  • 2021-05-14
  • 2017-03-02
  • 2021-06-24
  • 2017-02-12
  • 2017-11-26
  • 1970-01-01
  • 2016-09-16
  • 1970-01-01
相关资源
最近更新 更多