/ / Виберіть рядки даних у кадрі даних, які містять елемент, який не повторюється (є унікальним) [дублювати] - r, dataframe, унікальний

Виділити рядки даних в кадрі даних, які містять елемент, який не повторюється (унікальний) [дубльоване] - r, frameframe, унікальний

Тут тестовий кадр даних:

x = c("a", "b")
y = c(1,1,2,3,4,4,5,6)
z = c(20,30,20,40,10,30,20,40)
Data = data.frame(x,y,z)
x y  z
1 a 1 20
2 b 1 30
3 a 2 20
4 b 3 40
5 a 4 10
6 b 4 30
7 a 5 20
8 b 6 40

Таким чином, існують два зразки (a і b), а елементи у y, які можуть бути унікальними для a або b або розділеними між ними. Я хочу винести рядки даних, які містять лише унікальні (не спільні) елементи.

унікальний (Data $ y) дає лише список всіхy значення, при цьому дублікати видалені. Натомість, я хочу, щоб повні рядки містили лише значення y, які не повторювалися в рамках кадру даних. Як це зробити?

EDIT: Очікуваний вивід буде кадром даних, що містить тільки ті рядки, які містять значення y, які не повторюються у вихідному кадрі даних (не розділяються між a і b)

  x y  z
1 a 2 20
2 b 3 40
3 a 5 20
4 b 6 40

Відповіді:

0 для відповіді № 1

Ви можете використовувати duplicated для індексування кадру даних.

Data[!duplicated(Data$y),]

дає

  x y  z
1 a 1 20
3 a 2 20
4 b 3 40
5 a 4 10
7 a 5 20
8 b 6 40