我想從data.table
對象中提取列值,該對象使用變量指定列名稱。例如:通過引用從data.table中提取列作爲矢量
DT <- data.table(x = c(1, 2), y = c(3, 4), z = c(5, 6))
col <- "z"
然後
> is.vector(DT[, col, with = F])
[1] FALSE
因爲它返回一個data.table
對象來代替。
我也試過:is.vector(DT[, (col), with = F])
還有:is.vector(DT[, ..col])
也有同樣的結果。我試過其他可能會產生錯誤。
直接使用變量名工作原理:
> is.vector(DT[, z])
[1] TRUE
,我發現這個post,用它列位置,但不是引用使用名稱解決:
> is.vector(DT[[3]])
[1] TRUE
我沒有找到一個在data.table
documentation的明確引用。我相信這是一個簡單的方法來做到這一點,但我沒有找到。
參見http://stackoverflow.com/a/20043412/1412059 – Roland
@Roland此溶液通過索引位置,現在我認識到,對於名稱參考它也有效,但沒有明確提及。 –
現在我發現這個解決方案是由@Frank答覆在這[帖子](http://stackoverflow.com/questions/16617226/referring-to-data-table-columns-by-names-saved-in-variables? rq = 1),這個問題並不是針對這個特定的問題,但他的解決方案也解決了我的問題。 –