Как удалить столбцы с повторяющимися значениями во фрейме данных? - PullRequest
1 голос
/ 05 августа 2020

У меня есть следующие данные:

Years A  B  C  D
2015  1  7  1  13
2016  2  8  2  14
2017  3  9  3  15
2018  4  10 4  16
2019  5  11 5  17
2020  6  12 6  18

Я хочу, чтобы результат выглядел, как показано ниже (столбцы с удаленными повторяющимися значениями):

Years A  B  D
2015  1  7  13
2016  2  8  14
2017  3  9  15
2018  4  10 16
2019  5  11 17
2020  6  12 18

Заранее спасибо за все помогите!

Ответы [ 3 ]

3 голосов
/ 05 августа 2020

Объедините функции unclass и duplicated, чтобы найти совпадающие столбцы, а затем возьмите остальные:

df[!duplicated(unclass(df))]

вывод:

  Years     A     B     D
  <dbl> <dbl> <dbl> <dbl>
1  2015     1     7    13
2  2016     2     8    14
3  2017     3     9    15
4  2018     4    10    16
5  2019     5    11    17
6  2020     6    12    18
0 голосов
/ 05 августа 2020

Или мы можем транспонировать набор данных и применить duplicated

df1[!duplicated(t(df1))]
#  Years A  B  D
#1  2015 1  7 13
#2  2016 2  8 14
#3  2017 3  9 15
#4  2018 4 10 16
#5  2019 5 11 17
#6  2020 6 12 18

данные

df1 <- structure(list(Years = 2015:2020, A = 1:6, B = 7:12, C = 1:6, 
    D = 13:18), class = "data.frame", row.names = c(NA, -6L))
0 голосов
/ 05 августа 2020

Если вы хотите чего-то быстрого, попробуйте этот подход

df[!duplicated(as.list(df))]
#   Years A  B  D
# 1  2015 1  7 13
# 2  2016 2  8 14
# 3  2017 3  9 15
# 4  2018 4 10 16
# 5  2019 5 11 17
# 6  2020 6 12 18
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...