Giả sử tôi có một data.table:Sử dụng một cột yếu tố trong "bởi" và không thả yếu tố rỗng
x <- data.table(x=runif(3), group=factor(c('a','b','a'), levels=c('a','b','c')))
Tôi muốn biết có bao nhiêu hàng trong x
tồn tại cho mỗi group
:
x[, .N, by="group"]
# group N
# 1: a 2
# 2: b 1
Câu hỏi: có cách nào để buộc bên trên by="group"
xem xét tất cả các cấp của hệ số group
không?
Lưu ý cách tôi không có bất kỳ hàng nào có số group
'c' trong bảng, tôi không nhận được hàng cho c.
đầu ra mong muốn:
x[, .N, by="group", ???] # somehow use all levels in `group`
# group N
# 1: a 2
# 2: b 1
# 3: c 0
Tại sao không thêm các mức còn thiếu sau đó, chẳng hạn như 'merge (y, data.table (group = levels (x [, group])), bởi =" group ", all = TRUE)' và sau đó biến 'NA' thành 0? – Roland
Tôi không biết một giải pháp chung, nhưng đối với '.N' một mình, bạn có thể rơi vào' table': 'x [, table (group)]' (như bạn có thể đã biết). – Frank