2015-10-29 11 views
8

data.table行をベクトルに変換したいとします。ここに私のために働いた:data.tableの行をベクトルに変換する

unlist(dt[row_num]) 

しかし、より多くのネイティブソリューションはありますか?良いオプションがあるはずのように思える

as.numeric(unlist(dt[row_num])) 

:私はまた、上記のは、その後につながる本当に私が代わりに純粋な数値ベクトルを名前を、保持していることを好きではありません。

+6

*は、Rの 'list'を' vector'に変換するためのネイティブソリューションです。 'unlist'の' use.names'引数にも注意してください。 – eddi

+0

'unname'で名前を削除することもできます。 –

+3

私はBondedDustの最初の文に同意します:http://stackoverflow.com/a/8595099/1191259 "技術的にリスト*はベクトルですが、その用語を使用する人はごくわずかです。"その意味で、あなたは 'c(dt [row_num])' – Frank

答えて

8

ベクトルとして行を抽出する際の問題は、データフレームまたはデータテーブルの行が均等でなく、ベクトルが均等であることです。

しかし、あなたはその行を抽出行列にデータを変換することができます

> 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 
11

[OK]を、今私はあなたが行をしたい知っている:

as.matrix(dt[row_num])[1,] 

はIMO最初に使用することをお勧めしますdata.table-操作であり、完全なデータテーブルを行列に変換しない。単純にパフォーマンスが優れています(特に、非常に大きいのはdata.tables)。

関連する問題