I dati del pannello (soggetto/anno) per i quali desidero conservare solo i soggetti che compaiono il numero massimo di volte all'anno. Il set di dati è grande, quindi sto usando il pacchetto data.table. C'è una soluzione più elegante di quella che ho provato di seguito?Dati del pannello di conteggio dei dati R dati
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
Quindi, in sostanza, si desidera un data.table con tutti i dati dall'anno più ricco di dati per ogni beatle? –
A pensarci bene, sarebbe bello se 'data.table' avesse alcune delle stesse funzionalità' by' nell'espressione 'i' come nelle espressioni' j'. –