R数据表:用CJ填充行,但保留NA行

R数据表:用CJ填充行,但保留NA行,r,data.table,R,Data.table,我有一个数据表,带有一个分组列,并希望填充行,以便每个组的行数与人口最多的组的行数相同。考虑此数据,其中列A具有变量,列B为组; ## dummy data require(data.table) dt <- data.table(a=c(1,3,5,1,2,3,4,5,1,5), b=c("gpA","gpA","gpA","gpB","gpB","gpB","gpB","gpB","gpC","gpC"), c=c(2346,2314,345,234,578,36,234,547,34

我有一个数据表,带有一个分组列,并希望填充行,以便每个组的行数与人口最多的组的行数相同。考虑此数据,其中列A具有变量,列B为组;
## dummy data
require(data.table)
dt <- data.table(a=c(1,3,5,1,2,3,4,5,1,5),
b=c("gpA","gpA","gpA","gpB","gpB","gpB","gpB","gpB","gpC","gpC"),
c=c(2346,2314,345,234,578,36,234,547,3425,234))

   a   b    c
1: 1 gpA 2346
2: 3 gpA 2314
3: 5 gpA  345
4: 1 gpB  234
5: 2 gpB  578
6: 3 gpB   36
7: 4 gpB  234
8: 5 gpB  547
9: 1 gpC 3425
10: 5 gpC  234

必须将函数重新分配给原始变量才能保存结果

dt <- dt[CJ(b,a, unique=T)]

dt谢谢,我想我有点想不使用subassignment,如果你不想反复重新分配变量,我建议你看看dplyr包。当然谢谢,我想我在dplyr中看到了一个很好的答案。干杯。
dt <- dt[CJ(b,a, unique=T)]