9

V_1, V_2, ..., V_n行列に変換したいベクトルのセットがあります。各ベクトルは、行列の列ベクトルになります。各ベクトルのサイズは同じです。これを行うための簡単な関数はありますか?そのマトリックスセクションではThe R Book、この関数が存在するようには見えません。

私が現在行っていることは次のとおりです。

mat=matrix(c(V1, V2, ..., VN), nrow=length(V1))
  1. 行列の最後に列を追加するためのある種の行列追加関数はありますか?

編集:最終目標はk-means、このマトリックスを使用してクラスタリングを実行することです。私のベクトルの名前は実際にはありませんV_1, V_2, ..., V_n。ベクトルの名前は、データの元となるファイル名に対応するサブストリングです(これは1-1マップです)。最終的には、特定のディレクトリ内のすべてのファイルを反復処理し、データをベクトルに抽出してから、各列ベクトルを行列に追加します。

4

1 に答える 1

9

有効なコマンドは次のとおりです sapply(ls(pattern="V[[:digit:]]"),get) 。patternの引数が、必要なベクトル(および必要なベクトルのみ)に一致する正規表現である場合。あるいは、いくつかのファイル名のサブストリングからベクトルに名前が付けられているとすると、各ベクトル名を要素として持つ文字ベクトルを作成できると思います。その場合は、lsコマンドをそのベクトルに置き換えることができます。

編集:列による行列の追加はcbind(列バインド)になります。例えば:

V1 <- rnorm(20)
V2 <- rnorm(20)
V3 <- rnorm(20)
mat <- matrix(c(V1,V2),nrow=length(V1))
(mat.app <- cbind(mat,V3))
于 2013-02-15T04:57:38.307 に答える