最近我在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 为清晰起见而编辑