子集数据表/计数行

时间:2016-06-30 08:41:53

标签: r data.table

当我使用下面的商店代码计算数据表中的行时:

DailyProduct[, .N, by = ANA_Code]

我得到14个商店代码,总行数为120,237 - 与DailyPRoduct相同的行数非常棒!

如果我然后获得商店代码的唯一列表:

unique(DailyProduct$ANA_Code)

我得到了21个商店代码,这比我上面的代码多,但实际上是正确的数字。

如果我将商店代码从数字转换为因子,一切都按预期显示,我得到21个商店,每个行数加起来为120,237

当我汇总数据时,这也是一个问题,销售价值是正确的,但缺少7个商店代码。

在执行这些操作时,数据表如何处理数值与因子之间存在根本区别吗?

我不明白为什么会这样,所以我无法提供一个例子,因此道歉。

1 个答案:

答案 0 :(得分:2)

如果' ANA_Code'是一个大整数,在用fread读取它时可能会发生错误的输出。一种方法是加载bit64库,然后使用fread

读取它
 library(bit64)
 library(data.table)
 DailyProduct  <- fread("yourfile.csv")