2016-10-13 8 views
-2

Ich bin neu (sehr neu) in R. Ich kämpfe mit der Herstellung einer Funktion, die eine Matrix (alte_matrix) nehmen und eine neue Matrix (neue_matrix) zurückgeben soll, aber in new_matrix alle Werte in old_matrix, das eine Primzahl ist, sollte es mit 2 multipliziert werden, wenn es in new_matrix erscheint. Also sollte die neue Matrix genauso aussehen wie die alte Matrix, aber wo eine Primzahl in alt ist, sollte dieses Element mit 2 multipliziert werden.Funktion für Matrix in R

Ich denke, dass ich mit einer for-Schleife anfangen sollte, aber ich Ich kämpfe bereits damit, wie man die Schleife durch alle Elemente der Matrix laufen lässt. Ich schätze all die Hilfe, die ich bekommen kann, um dieser Funktion näher zu kommen!

+0

starten, indem Sie ein [reproduzierbares Beispiel] (http://stackoverflow.com/questions/5963269/how-to-make-a sein könnte -groß-r-reproduzierbar-Beispiel) und zeigen, welchen Code Sie bisher ausprobiert haben. Die Chancen stehen in R Eine Schleife ist nicht notwendig, aber zeigen Sie uns, was Sie bisher getan haben, wird helfen. – MrFlick

Antwort

1

Die isPrime Funktion im numbers Paket eine große Hilfe

# 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