小编Ale*_* Li的帖子

为什么data.table,设置"with"= F,当j是单列时输出data.table?

假设我有数据表dt.

dt = as.data.table(c(0,1,2,3))
Run Code Online (Sandbox Code Playgroud)

我想知道为什么dt的行为在以下两行代码中有所不同.

dt[,V1]

dt[,"V1",with=F]
Run Code Online (Sandbox Code Playgroud)

具体来说,第一行产生数字向量,而第二行产生data.table.

我想构建一个函数,允许我通过传递一个字符串(因此使用= F)动态检索单个列,并在某些其他函数中使用该输出.就像现在一样,后一种情况下的行为可能会导致某些函数出错,例如ecdf和hist,它们不接受data.frame或data.table.

这是我做过的解决方法.

as.data.frame(dt[,"V1",with=F])[,1]
Run Code Online (Sandbox Code Playgroud)

这将返回预期的输出:一个与ecdf和hist很好地匹配的向量.这有点乱.这种行为有什么dt[,"V1",with=F]不同dt[,V1]

r data.table

6
推荐指数
1
解决办法
6802
查看次数

标签 统计

data.table ×1

r ×1