2016-10-13 4 views
-2

私は行列(old_matrix)をとり、新しい行列(new_matrix)を返す関数を作るのに苦労していますが、new_matrixではすべての値素数であるold_matrixでは、new_matrixに現れるときに2を掛けるべきです。したがって、新しい行列は古い行列と同じに見えるはずですが、古い場合は素数が2になるはずです。行列の関数R

私はforループを使い始めるべきだと思っていますが、ループが行列のすべての要素をどのように通過するかについてはすでに苦労しています。私はこの機能を作ることに近づくために得ることができるすべての助けに感謝します!

+0

[再現可能な例]を作ることから始めます(http://stackoverflow.com/questions/5963269/how-to-make-a -great-r-reproducible-example)、これまでに試したコードを表示します。可能性はありますが、ループは必要ではありませんが、あなたが今まで行ってきたことを示すことは助けになります。 – MrFlick

答えて

1

numbersパッケージでisPrime機能は大きな助けとなる可能性が

# Start by creating an example to work with 
old_matrix <- matrix(sample.int(100, 25), 5, 5) 
# Create your new matrix and determine which numbers are prime 
new_matrix <- old_matrix 
primeVals <- numbers::isPrime(old_matrix) 
# Index into the matrix using the prime value indicator and multiply by 2 
new_matrix[primeVals] <- new_matrix[primeVals]*2