Тут тестовий кадр даних:
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