使用data.table对数据表进行分组时的奇怪性

时间:2014-12-08 13:12:22

标签: r split grouping data.table

最近我在stackoverflow上问了一个不同的问题。它可以在1找到: 然而,虽然解决方案似乎非常简洁,但结果显示我们无法解决的巨大错误。 长话短说: 我有一个以下形式的数据框:

df <- structure(list(X = c("A", "A", "B", "C", "C"), Y = c(1L, 2L, 
 3L, 1L, 3L)), .Names = c("X", "Y"), class = "data.frame", row.names = c(NA, 
 -5L))

我想要一个这样的列表:

$`A`
[1] 1 2

$`B`
[1] 3

$`C`
[1] 1 3

@akrun建议使用data.table,因为我的数据有2200万行。 因此,我使用了以下代码。

library(data.table)
 DT <- as.data.table(df)
 DT1 <- DT[, list(Y=list(Y)), by=X]
 DT1$Y

然而,我的Y是一个因素。虽然代码适用于整数,但它不适用于某个因子。我得到了以下结果,包括示例数据集和2200万行以及200行的子样本。

DT1$Y
#[[1]]
 #[1] 1 3

 #[[2]]
 #[1] 1 3

 #[[3]]
 #[1] 1 3

有谁知道为什么?我使用的是R 3.1.1和data.table 1.9.2 为清晰起见而编辑

0 个答案:

没有答案