mam następujące próbki data.table
:agregujące wiele kolumn w data.table
dtb <- data.table(a=sample(1:100,100), b=sample(1:100,100), id=rep(1:10,10))
Chciałbym agregować wszystkie kolumny (A i B, jednak powinny one być przechowywane oddzielnie) przez id używając colSums
, na przykład . Jaki jest prawidłowy sposób to zrobić? Poniższa nie działa:
dtb[,colSums, by="id"]
To jest tylko przykładowy i moja tabela ma wiele kolumn, więc chcę uniknąć, określając wszystkie z nich w nazwie funkcji
+1 Te, masz całkowitą rację, to zdecydowanie lepszy sposób. Zawsze uważam, że powinienem mieć wszystko w długim formacie, ale dość często, jak w tym przypadku, wykonywanie obliczeń jest bardziej wydajne. Powinieneś oznaczyć swoją jako poprawną odpowiedź. –
OK brzmi dobrze, zmienię to na poprawną odpowiedź. – Alex
+1 Btw, ta składnia została zoptymalizowana w najnowszym v1.8.2. Była kara za używanie "lapply" w 'j', ale już nie. Dokonano zmian w punktach wiki "data.table" 1, a do punktu 5 są potrzebne. –