Tôi có dữ liệu bảng điều khiển (chủ đề/năm) mà tôi muốn chỉ giữ các đối tượng xuất hiện số lần tối đa mỗi năm. Tập dữ liệu lớn nên tôi đang sử dụng gói data.table. Có một giải pháp thanh lịch hơn những gì tôi đã thử dưới đây?Dữ liệu R.tệ số đếm số
library(data.table)
DT <- data.table(SUBJECT=c(rep('John',3), rep('Paul',2),
rep('George',3), rep('Ringo',2),
rep('John',2), rep('Paul',4),
rep('George',2), rep('Ringo',4)),
YEAR=c(rep(2011,10), rep(2012,12)),
HEIGHT=rnorm(22),
WEIGHT=rnorm(22))
DT
DT[, COUNT := .N, by='SUBJECT,YEAR']
DT[, MAXCOUNT := max(COUNT), by='YEAR']
DT <- DT[COUNT==MAXCOUNT]
DT <- DT[, c('COUNT','MAXCOUNT') := NULL]
DT
Vì vậy, về cơ bản bạn muốn có dữ liệu. Có thể với tất cả dữ liệu từ năm giàu dữ liệu nhất cho mỗi lần đánh bại? –
Hãy suy nghĩ về nó, nó sẽ được tốt đẹp nếu 'data.table' có một số' cùng 'khả năng trong biểu thức' i' như trong các biểu thức 'j'. –