На этот вопрос уже есть ответ:
Я перехожу от фреймов данных и матриц к таблицам данных, но не нашел решения для извлечения уникальных строк из таблицы данных. Полагаю, что-то мне не хватает в нотации [, J]
, хотя я еще не нашел ответа в FAQ и вступительных виньетках. Как я могу извлечь уникальные строки без обратного преобразования в кадры данных?
Вот пример:
library(data.table)
set.seed(123)
a <- matrix(sample(2, 120, replace = TRUE), ncol = 3)
a <- as.data.frame(a)
b <- as.data.table(a)
# Confirm dimensionality
dim(a) # 40 3
dim(b) # 40 3
# Unique rows using all columns
dim(unique(a)) # 8 3
dim(unique(b)) # 34 3
# Unique rows using only a subset of columns
dim(unique(a[,c("V1","V2")])) # 4 2
dim(unique(b[,list(V1,V2)])) # 29 2
Связанный вопрос: является ли такое поведение результатом несортировки данных, как в Unix uniq
] функция?