【问题标题】:Subsetting data.table columns using []使用 [] 子集 data.table 列
【发布时间】:2015-07-14 06:55:23
【问题描述】:

这很奇怪。当我尝试通过这样做来选择我的data.table 上的列时

df1[, 30]

它只给我 30,或者我输入的任何数字。不是第 30 列。

这里的数据:https://github.com/pourque/country-data/blob/master/data/df1.csv

我已经检查过了,当我刚刚生成一个测试data.frame时一切正常:

df2 <- data.frame(x = 1:3, y = 3:1, z = 7:9)
> df2[, 2]
[1] 3 2 1

对可能发生的事情有什么想法吗?

【问题讨论】:

  • 数据框还是数据表?您描述的行为看起来像一个数据表。
  • 我的错,它是一个数据表。我会把它转换成一个数据框,希望能解决这个问题!
  • 请忽略我的评论。我以为你想要它作为一个专栏。如果是data.table,df2[,2, with=FALSE]
  • 作为参考,这是常见问题中的第一个问题 :) github.com/Rdatatable/data.table/wiki/vignettes/… 您可能需要编辑问题标题(因为它说“数据框”)
  • 哦...这很尴尬。谢谢! :D

标签: r data.table subset


【解决方案1】:

使用 data.table 时,您需要使用以下按数字选择列:

df2[, 2]
df2[, .SD, .SDcols=2]

这仍将返回 data.table,而不是向量。
与往常一样,您也可以在下面使用返回向量:

df2[[2]]

【讨论】:

    猜你喜欢
    • 2014-01-08
    • 2017-02-19
    • 1970-01-01
    • 2013-12-15
    • 2013-04-17
    • 2012-08-16
    • 2013-01-08
    • 1970-01-01
    • 2015-11-30
    相关资源
    最近更新 更多