Depuis la conférence useR2017, je me suis mise (non sans difficulté) au package data.table. J'ai donc pleins de questions sans réponse (même si j'ai trouvé des alternatives, je souhaiterais que mon code soit le plus efficace possible pour profiter au maximum de la puissance du package data.table.
Une de mes questions concerne le calcul de moyenne et de N sur plusieurs colonnes, que je fait grace à lapply, .SD et .SDcols comme ci dessous:
Code : Tout sélectionner
avgtemp<-dt[,lapply(.SD,mean,na.rm=TRUE),.SDcols=c(15:20)]
# calcul moyenne pour mes colonnes 15 à 20 de dt, comme il y a des NA, je rajoute l'option na.rm=TRUE
Ntemp<-dt[,lapply(.SD,function(x)length(x[!is.na(x)])),.SDcols=c(15:20)]
#même logique mais cette fois c'est le count (sans NA) que je veux obtenir.
Je voudrais faire ces deux lignes de codes en une seule, car au final ce que je veux, c'est obtenir si possible un data.table avec 5 lignes et deux colonnes, une pour la moyenne et une pour le N.
Donc pour l'instant ce que je fais (code loin d'être optimal, qui peut être simplifié) est :
Code : Tout sélectionner
dt1<-data.frame(att=names(avgtemp),avg=t(avgtemp),N=t(Ntemp))
dt1b<-as.data.table(dt1)
Des conseils à me donner?
Merci d'avance,
Salutations,
Mélissa