Je suis bloqué sur un facile, mais n'a pas trouvé une solution dans le manuel data.table ou ici.data.table nombre de lignes indexées par catégorie
dt<-data.table(account=c("treu65","treu65","treg23","treg23","treg23"),year=c("2012","2013","2013","2013","2012"))
Je dois ajouter une colonne avec un nombre de lignes par compte et par année. Le problème est que j'ai besoin de créer deux colonnes séparées. L'une contiendra le compte pour 2012, l'autre pour 2013. comme ceci:
account year count2012 count2013
1: treu65 2012 1 1
2: treu65 2013 1 1
3: treg23 2013 1 2
4: treg23 2013 1 2
5: treg23 2012 1 2
Normalement, j'agréger, mais dans ce cas je dois la même structure que ci-dessus. je suis arrivé aussi loin que:
dt[year==2012,count2012:=.N,.(account)]
dt[year==2013,count2013:=.N,.(account)]
Mais je NAs maintenant:
account year count2012 count2013
1: treu65 2012 1 NA
2: treu65 2013 NA 1
3: treg23 2013 NA 2
4: treg23 2013 NA 2
5: treg23 2012 1 NA
Et je devrais:
account year count2012 count2013
1: treu65 2012 1 1
2: treu65 2013 1 1
3: treg23 2013 1 2
4: treg23 2013 1 2
5: treg23 2012 1 2
Merci.
Pourquoi 'count2013' obtient '1' à 'treu65 2012', mais' 2' à 'treg23 2012'? – PoGibas
Parce qu'il y a 1 ligne avec compte == "treu65" & année == 2013, et 2 lignes avec compte == "treg23" & année == "2013". –