data.table warning - 项目大小但最大大小是(回收剩余的项目)

时间:2014-05-20 12:54:39

标签: r data.table

我正在使用data.table J在5列th1上执行split1, market, dept_size, bool_3, cust_poor_rich的子集。

我知道我应该使用unique(column_name)指定该列应包含任何值。

虽然我使用此命令遇到以下警告:

setkey(th1, split1, market, dept_size, bool_3, cust_poor_rich)

subs = th1[J(0, unique(market), unique(dept_size), 1, factor(1)), nomatch=0]
 Warning message:
 In as.data.table.list(i) :
  Item 3 is of size 5 but maximum size is 34 (recycled leaving a remainder of 4 items)

我尝试用一​​个小例子重现错误,但无法重现。

我认为Item 3是指J()中的第三个输入,我可以看到length(unique(th1$dept_size))是5。

但是34来自哪里?  为什么要留下剩余的4件物品?

1 个答案:

答案 0 :(得分:5)

您可以使用CJ获取所有唯一组合,而不是所有唯一值。

th1[CJ(0, unique(market), unique(dept_size), 1, factor(1)), nomatch=0]