Ich habe die folgenden Matrizen:Werte der Matrix mit einem Vektor subsetting (Bedingungen)
> matrix <- matrix(c(1,3,4,NA,NA,NA,3,0,4,6,0,NA,2,NA,NA,2,0,1,0,0), nrow=5,ncol=4)
> n <- matrix(c(1,2,5,6,2),nrow=5,ncol=1)
Wie Sie, für jede Zeilen sehen kann ich
- mehrere NAs haben - die Zahl NAs ist nicht definiert
- ONE Single "0"
ich möchte die 0 für die Werte der n der Teilmenge. Beabsichtigte Ausgabe unten.
> output <- matrix(c(1, 3, 4,NA,NA,NA,3,5,4,6,1,NA,2,NA,NA,2,2,1,6,2), nrow=5,ncol=4)
Ich habe versucht, die folgenden
subset <- matrix == 0 & !is.na(matrix)
matrix[subset] <- n
#does not give intended output, but subset locates the values i want to change
Wenn auf meinem "echten" Daten verwendet erhalte ich die folgende Meldung:
Warnmeldung: In m [Subset] < - n : Anzahl der zu ersetzenden Artikel ist nicht ein Vielfaches der Ersatzlänge
Danke
BEARBEITEN: eine Reihe der Matrix hinzugefügt, wie mein wirkliches Leben Problem mit einer unsymmetrischen Matrix ist. Ich benutze Matrizen und nicht DF hier, weil ich denke (nicht sicher), dass mit sehr großen Datensätzen R schneller ist mit großen Matrizen als Teilmengen von Datenrahmen.
Danke, das funktioniert in meinem "skalierten" Beispiel. war auf der Suche nach diesem – Chrisftw