将data.table的行转换为向量

sun*_*nny 12 r data.table

我想将data.table行转换为向量.这对我有用:

unlist(dt[row_num])
Run Code Online (Sandbox Code Playgroud)

但是有更原生的解决方案吗?我也不喜欢上面保留名称的时候我真的想要一个纯数字向量,然后导致:

as.numeric(unlist(dt[row_num]))
Run Code Online (Sandbox Code Playgroud)

似乎应该有更好的选择.

jog*_*ogo 15

好的,现在我知道你想要一排:

as.matrix(dt[row_num])[1,]
Run Code Online (Sandbox Code Playgroud)

IMO最好首先使用data.table-operation而不是将完整的数据表转换为矩阵.简单地说,性能更好(特别是在非常大的data.tables上).例:

library("data.table")
Iris <- data.table(iris[-5])
as.matrix(Iris[42])[1,]
Run Code Online (Sandbox Code Playgroud)


Mat*_*erg 11

将行提取为向量的问题是向量是同构的,而数据帧或数据表的行不是.

但是,您可以将数据转换为矩阵,然后提取行:

> x <- iris[1:10,1:4]
> as.matrix(x)[1,]
Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
         5.1          3.5          1.4          0.2 
Run Code Online (Sandbox Code Playgroud)