4
我有一个data.table my.data.table
和一个字符向量i
(长度为1),对应于my.data.table
的一个colname。使用i
,我想提取my.data.table
的相应列作为不是类data.table
或data.frame
的向量。使用with = TRUE返回一个向量
我该怎么做?
> my.data.table <- data.table(a=1:2,b=2:3)
> i <- "a"
> class(my.data.table[,i,with=FALSE])
[1] "data.table" "data.frame"
> as.vector(my.data.table[,i,with=FALSE]) ##does not work
a
1: 1
2: 2
> is.vector(as.vector(my.data.table[,i,with=FALSE])) ##strange behavior
[1] FALSE
>
我认为有办法做到这一点使用with=FALSE
和j
eval(i, <env>)
但我无法弄清楚。
'my.data.table [[i]]'? – Marius
@Marius对于单个列是正确的。如果x是指定模式的矢量,且名称不具有其他属性,则is.vector将返回TRUE。否则返回FALSE。 data.tables和data.frames都是列表,因此具有很多属性的矢量 – mnel
请参见[here](http://stackoverflow.com/questions/1169456/in-r-what-is-the-difference-between-the为了解释 - 一旦你对'['和'['']之间的区别有所了解,这些问题就变得容易处理了。 – Marius