当列表是单数时,R意外行为将列表转换为data.table

时间:2016-08-05 12:01:04

标签: r data.table

我正在使用本地仓库,偶然发现了一些让我对索引列表的理解感到困惑的事情。

as.data.table(
 available.packages(url, type="win.binary")[, c("Package","Version","Depends","Repository")]
)

如果'url'的回购包含多个包,我会得到预期的结果:

     Package  Version       Depends                                     Repository
1: truncnorm   1.0-7  R (>= 2.15.0)        file:///D:/Repo/bin/windows/contrib/3.3
2:     yacca   1.1    R (>= 1.8.0), utils  file:///D:/Repo/bin/windows/contrib/3.3

但当repo只有1个包时:

                                        V1
1:                               truncnorm
2:                                   1.0-7
3:                           R (>= 2.15.0)
4: file:///D:/Repo/bin/windows/contrib/3.3

似乎已将列表行转换为列。为什么它将单个列表组件视为向量(或者是其他的东西)?

1 个答案:

答案 0 :(得分:0)

@lmo回答

如果维度是多余的,则默认情况下会折叠维度。 要停止此行为,请使用选项drop = FALSE

available.packages(url, type="win.binary")[, c("Package","Version","Depends","Repository"), drop=FALSE]