R duplicated
повертає вектор, який показує, чи кожен елемент вектора або фрейму даних є дублікатом елемента з меншим індексом. Отже, якщо рядки 3, 4 і 5 5-рядкового кадру даних однакові, duplicated
це дасть мені вектор
FALSE, FALSE, FALSE, TRUE, TRUE
Але в цьому випадку я насправді хочу отримати
FALSE, FALSE, TRUE, TRUE, TRUE
тобто я хочу знати, чи дублюється рядок рядком з більшим підписом.
x <- c(1:9, 7:10, 5:22); y <- c(letters, letters[1:5]); test <- data.frame(x, y); test[duplicated(test$x) | duplicated(test$x, fromLast=TRUE), ]
повернув усі три копії 7, 8 та 9. Чому це працює?