as.vector()在data.table对象上失败

as.vector()在data.table对象上失败,r,vector,data.table,R,Vector,Data.table,我需要以向量的形式从data.table中提取一列。我知道$有效,而[]无效。然而,as.vector()在单个维度的data.table对象上失败 库(data.table) dt数据帧是列表。即使您选择了数据的一行,它仍然被视为一个列表 请改用未列出: library(data.table) dt <- iris setDT(dt) oneCol1 <- dt$Sepal.Length[1:100] # produces a vector of 100 elements, fi

我需要以向量的形式从data.table中提取一列。我知道
$
有效,而
[]
无效。然而,
as.vector()
在单个维度的data.table对象上失败

库(data.table)

dt数据帧是列表。即使您选择了数据的一行,它仍然被视为一个列表

请改用未列出:

 library(data.table)
dt <- iris
setDT(dt)
oneCol1 <- dt$Sepal.Length[1:100] # produces a vector of 100 elements, fine
oneCol2 <- dt[1:100,1] # produces a DT 100 rows by 1 column. I understand limitation.
t<-unlist(oneCol2)
is.vector(t) # true
库(data.table)

dt您基本上是告诉R将数据表/数据帧转换为向量。这是怎么回事?仅仅做
v你需要
unlist
“我需要提取一个列”-
dt[[1]][1:100]
,有什么不对?您还可以键入
vignette(“datatable faq”)
并阅读第一个答案。(我建议把整件事都读一遍。)
 library(data.table)
dt <- iris
setDT(dt)
oneCol1 <- dt$Sepal.Length[1:100] # produces a vector of 100 elements, fine
oneCol2 <- dt[1:100,1] # produces a DT 100 rows by 1 column. I understand limitation.
t<-unlist(oneCol2)
is.vector(t) # true