私はRプログラミングの初心者で、50列の行列に1つの余分な列を追加しようとしています。この新しい列は、その行の最初の10個の値の平均値になります。Rプログラミング - 既存の行列に余分な列を追加する
randomMatrix <- generateMatrix(1,5000,100,50)
randomMatrix51 <- matrix(nrow=100, ncol=1)
for(ctr in 1:ncol(randomMatrix)){
randomMatrix51.mat[1,ctr] <- sum(randomMatrix [ctr, 1:10])/10
}
これは私がこの
cbind(randomMatrix,sum(randomMatrix [ctr, 1:10])/10)
をしようとした以下のエラー
Error in randomMatrix51.mat[1, ctr] <- sum(randomMatrix[ctr, 1:10])/10 :incorrect
number of subscripts on matrix
を与えます。しかし、それは唯一私がループ内でこのCBINDを使用している場合、すべての古い値は、1行のために働きます上書きされます。
新しい列に最初の10個の値の平均を追加するにはどうすればよいですか。行をループする以外の方法がありますか?
私はあなたがラウンド 'X [I、J]'を指し、間違った方法をインデックスあなたの行列を取得していると思います行「i」および列「j」。また、 'generateMatrix'はどこから来ましたか? – mnel
これは問題の一部を解決します。しかし、 'randomMatrix'に追加の列を追加する方法があります。 もしそうでなければ、 'randomMatrix51'を 'randomMatrix'に 'cbind'しなければなりません。 generateMatrixは、params(lower lim、upper lim、行数なし、colmn)を持つ関数です。 R. – user2085566
'transform(randomMatrix、new.col = new.data)'の標準ライブラリに組み込まれた関数 'Rに完全に切り取って貼り付けることができるはるかに小さな例を与えたら、あなたの望む結果のより良い説明。 – N8TRO