read.csv で生データ (10000 行と 392 列) を R にインポートしました。それをマトリックス形式に変換する方法を考えています。ご助力ありがとうございます!
melon
質問する
26628 次
3 に答える
8
あなたの質問はおそらく StackOverflow に移行されます。ただし、答えは比較的簡単なので、提供します。read.csv は結果として data.frame を生成します。すべての値が同じ基本要素 (つまり変数) 型、つまり数値、文字などである場合、それらを Matrix データ構造で表すことができます。「as.matrix」関数を使用してこれを行うことができます。
例えば
mydataframe <- data.frame(a=c(1,2),b=c(2,3))
mymatrix <- as.matrix(mydataframe)
于 2013-01-29T21:22:04.700 に答える
6
データが によって読み取られread.csv
たが、実際には と一致している場合は、最初matrix
に を使用scan
して、おそらくskip=1
ヘッダー行をスキップするために を使用します。
m = matrix(scan("file.csv", what=numeric(), skip=1), nrow=392)
scan は、単純な構造のデータの場合、read.csv と比較して非常に高速です。
于 2013-01-30T01:01:45.237 に答える
5
の代替as.matrix()
は ですdata.matrix()
。これには、行列に変換するときに因子変数の数値 (コード化) 情報を保持するという利点があります。検討:
d <- data.frame(1:10, letters[1:10])
as.matrix(d)
data.matrix(d)
> as.matrix(d)
X1.10 letters.1.10.
[1,] " 1" "a"
[2,] " 2" "b"
[3,] " 3" "c"
[4,] " 4" "d"
[5,] " 5" "e"
[6,] " 6" "f"
[7,] " 7" "g"
[8,] " 8" "h"
[9,] " 9" "i"
[10,] "10" "j"
> data.matrix(d)
X1.10 letters.1.10.
[1,] 1 1
[2,] 2 2
[3,] 3 3
[4,] 4 4
[5,] 5 5
[6,] 6 6
[7,] 7 7
[8,] 8 8
[9,] 9 9
[10,] 10 10
テキスト ラベルを持つ因子が存在すると、行列キャスト全体as.matrix()
が文字行列としてレンダリングされるのに対しdata.matrix()
、因子ラベルを内部の数値コードに置き換えることでデータの数値的性質が保持されることに注意してください。
于 2013-01-29T22:19:47.433 に答える