gpt4 book ai didi

r - 为什么当 data.frame 没有时,data.table 将矩阵回收到单个向量中?

转载 作者:行者123 更新时间:2023-12-01 05:09:25 24 4
gpt4 key购买 nike

比较 data.table 的行为和 data.frame以下:

a.matrix <- matrix(seq_len(25),ncol = 5, nrow = 5)

a.list <- list(seq_len(5),a.matrix)

a.dt <- as.data.table(a.list)
a.df <- as.data.frame(a.list)
a.dt.df <- as.data.table(a.df)

str(a.dt)
str(a.df)
str(a.dt.df)
data.table将矩阵的列循环为适当长度的向量:
> str(a.dt)
Classes ‘data.table’ and 'data.frame': 25 obs. of 2 variables:
$ V1: int 1 2 3 4 5 1 2 3 4 5 ...
$ V2: int 1 2 3 4 5 6 7 8 9 10 ...
- attr(*, ".internal.selfref")=<externalptr>

另一方面, data.frame将每一列分开:
> str(a.df)
'data.frame': 5 obs. of 6 variables:
$ X1.5: int 1 2 3 4 5
$ X1 : int 1 2 3 4 5
$ X2 : int 6 7 8 9 10
$ X3 : int 11 12 13 14 15
$ X4 : int 16 17 18 19 20
$ X5 : int 21 22 23 24 25

我目前的解决方法是使用 as.data.table 快速获得此行为只是为了通过两者提供它 as胁迫者:
> str(a.dt.df)
Classes ‘data.table’ and 'data.frame': 5 obs. of 6 variables:
$ X1.5: int 1 2 3 4 5
$ X1 : int 1 2 3 4 5
$ X2 : int 6 7 8 9 10
$ X3 : int 11 12 13 14 15
$ X4 : int 16 17 18 19 20
$ X5 : int 21 22 23 24 25
- attr(*, ".internal.selfref")=<externalptr>

为什么会有区别,有没有快速获取 data.frame的方法与 data.table 的行为?

最佳答案

只是为了在 SO 端关闭它,如评论中所述,这将作为 bug/issue 处理。现在在 github 上,添加到本文撰写的 data.table 里程碑 v1.9.8。

跟进

现在已根据 commit 64f377... 解决此问题

关于r - 为什么当 data.frame 没有时,data.table 将矩阵回收到单个向量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26070187/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com