【发布时间】:2013-12-01 08:08:24
【问题描述】:
如何按位置从 data.table 中提取列作为向量?以下是我尝试过的一些代码sn-ps:
DT<-data.table(x=c(1,2),y=c(3,4),z=c(5,6))
DT
# x y z
#1: 1 3 5
#2: 2 4 6
我想使用列位置得到这个输出
DT$y
#[1] 3 4
is.vector(DT$y)
#[1] TRUE
使用列位置获取此输出的其他方式
DT[,y]
#[1] 3 4
is.vector(DT[,y])
#[1] TRUE
这没有给出向量
DT[,2,with=FALSE]
# y
#1: 3
#2: 4
is.vector(DT[,2,with=FALSE])
#[1] FALSE
这两个不起作用:
DT$noquote(names(DT)[2]) # Doesn't work
#Error: attempt to apply non-function
DT[,noquote(names(DT)[2])] # Doesn't work
#[1] y
这并没有给出向量:
DT[,noquote(names(DT)[2]),with=FALSE] # Not a vector
# y
#1: 3
#2: 4
is.vector(DT[,noquote(names(DT)[2]),with=FALSE])
#[1] FALSE
【问题讨论】:
-
对于一般的指法数据,您应该查看dplyr ;)
-
@Mullefa 我看不出你觉得有必要发表评论的理由。
-
@Mullefa:对于某些类型的指法数据,data.table 胜过 dplyr。使用它是 OP 的选择。
标签: r vector indexing data.table