Gói data.table
cũng có unique
và duplicated
phương pháp riêng của nó với một số tính năng bổ sung.
Cả unique.data.table
và duplicated.data.table
phương pháp có một by
đối số bổ sung cho phép bạn vượt qua một character
hoặc integer
vector của tên cột hoặc vị trí của họ tương ứng
library(data.table)
DT <- data.table(id = c(1,1,1,2,2,2),
val = c(10,20,30,10,20,30))
unique(DT, by = "id")
# id val
# 1: 1 10
# 2: 2 10
duplicated(DT, by = "id")
# [1] FALSE TRUE TRUE FALSE TRUE TRUE
Một tính năng quan trọng của các phương pháp này là một buổi biểu diễn lớn thu được cho các tập dữ liệu lớn hơn
library(microbenchmark)
library(data.table)
set.seed(123)
DF <- as.data.frame(matrix(sample(1e8, 1e5, replace = TRUE), ncol = 10))
DT <- copy(DF)
setDT(DT)
microbenchmark(unique(DF), unique(DT))
# Unit: microseconds
# expr min lq mean median uq max neval cld
# unique(DF) 44708.230 48981.8445 53062.536 51573.276 52844.591 107032.18 100 b
# unique(DT) 746.855 776.6145 2201.657 864.932 919.489 55986.88 100 a
microbenchmark(duplicated(DF), duplicated(DT))
# Unit: microseconds
# expr min lq mean median uq max neval cld
# duplicated(DF) 43786.662 44418.8005 46684.0602 44925.0230 46802.398 109550.170 100 b
# duplicated(DT) 551.982 558.2215 851.0246 639.9795 663.658 5805.243 100 a
Nguồn
2016-03-17 11:01:33
mà một trong những bạn muốn? chỉ là người đầu tiên? nói cách khác: bạn có muốn giữ 'google' hoặc' localhost' hoặc 'hughsie' không? –
Nó không quan trọng đối với phần này của phân tích thống kê của tôi. Tôi chỉ cố gắng liên kết tiêu đề dự án (cột đầu tiên), số lỗi (cột thứ hai) và số lượng tổ chức trên dự án (cột thứ ba). – user1897691
tuyệt. ném các cột không cần thiết ra và sử dụng? độc đáo –