web-dev-qa-db-ja.com

Rベクトルを複数の列に再形成する

Rに次のようなベクトルがあるとします。

d<-seq(1,100)

このベクトルを10x10マトリックスに再形成して、代わりにこのデータを取得したいと思います。

[,1]  [,2]  [,3]  ..  [,10]   
  1      2    3   ..   10
  11    12   13   ..   20
  21    22   23   ..   30
  ..
  91    92   93    ..  100

Reshape関数を使用しようとしましたが、機能しませんでした。誰かが助けてくれますか?

18
Vahid Mirjalili

できるよ

dim(d) <- c(10, 10)
d <- t(d)

または

d <- matrix(d, nrow = 10, byrow = TRUE)
38
flodel

事前定義されたリストを行列(たとえば、5 * 4行列)に変換する場合は、次のようにします。

yourMatrix <- matrix(unlist(yourList), nrow = 5, ncol = 4)

マトリックスが列によって作成されることは注目に値します。つまり、データは列によってマトリックスに入力されますになります。したがって、行で作成された行列にしたい場合は、単純にt()を使用します。

yourMatrix <- matrix(unlist(yourList), nrow = 4, ncol = 5)  # exchanges the cols and rows
yourMatrix <- t(yourMatrix)  # matrix transpose
1
jared