R*N の長さの単一の列があり、それを R の RxN 行列に変換したい.ループと値による値の割り当てを使用せずにこれを達成する簡単な方法はありますか?
フォーマットは
r1
r2
r3
..
rR*N
に変換します
r(1..N)
r(N+1 .. 2*N)
...
これは R では非常に単純です。オブジェクトが次のように呼び出されると仮定しますdat
。
matrix(dat, R, byrow=TRUE)
ここでR
、 は行数を示します。
データ セットが大きい場合は、メモリを節約することをお勧めします。簡単な例を次に示します。
x = round(runif(15, min=1, max=15));
## use dim() to set dimensions instead of matrix() to avoid duplication of x
dim(x) <- c(3, 5);
rowNames = c("row1", "row2", "row3");
colNames = c("c1", "c2", "c3", "c4", "c5");
dimnames(x) = list(rowNames, colNames);
print(x);
c1 c2 c3 c4 c5
row1 7 2 2 11 9
row2 2 6 11 14 10
row3 2 11 6 13 12
「x」のクラスが「行列」になったことに注意してください。
> class(x)
[1] "matrix"