as.vector()在data.table对象上失败
我需要以向量的形式从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
$
有效,而[]
无效。然而,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