删除重复的列

时间:2018-11-16 17:50:44

标签: r dplyr tidyr

我从年度文件和行绑定读取的数据跨越了几十年。我发现有时候我最终会得到具有重复值的列,并且我想删除重复的列。这必须发生在非常大的表(数百万行,数百列)上,因此进行成对检查可能不可行。

示例数据:

df <-  data.frame(id = c(1:6), x = c(15, 21, 14, 21, 14, 38), y = c(36, 38, 55, 11, 5, 18), z = c(15, 21, 14, 21, 14, 38), a = c("D", "B", "A", "F", "H", "P")) 

> df
  id  x  y  z a
1  1 15 36 15 D
2  2 21 38 21 B
3  3 14 55 14 A
4  4 21 11 21 F
5  5 14  5 14 H
6  6 38 18 38 P

zx的副本,因此应将其删除。所需结果:

> df2
  id  x  y a
1  1 15 36 D
2  2 21 38 B
3  3 14 55 A
4  4 21 11 F
5  5 14  5 H
6  6 38 18 P

1 个答案:

答案 0 :(得分:1)

我们可以在转置后的数据集上应用duplicated并将其用于子集列

df[!duplicated(t(df))]
#  id  x  y a
#1  1 15 36 D
#2  2 21 38 B
#3  3 14 55 A
#4  4 21 11 F
#5  5 14  5 H
#6  6 38 18 P