Échantillon aléatoire de lignes à l'intérieur de chaque groupe de données.table

Comment voudriez-vous d'utiliser les données.tableau efficacement prendre un échantillon de lignes à l'intérieur de chaque groupe dans un bloc de données?

DT = data.table(a = sample(1:2), b = sample(1:1000,20))
DT
    a   b
 1: 2 562
 2: 1 183
 3: 2 180
 4: 1 874
 5: 2 533
 6: 1  21
 7: 2  57
 8: 1  20
 9: 2  39
10: 1 948
11: 2 799
12: 1 893
13: 2 993
14: 1  69
15: 2 906
16: 1 347
17: 2 969
18: 1 130
19: 2 118
20: 1 732

Je pensais à quelque chose comme: DT[ , sample(??, 3), by = a] qui permettrait le retour d'un échantillon de trois lignes pour chaque "un" (l'ordre des lignes renvoyées n'est pas significatif):

    a   b
 1: 2 180
 2: 2  57
 3: 2 799
 4: 1  69
 5: 1 347
 6: 1 732