glaube, ich habe zwei Matrizen mat
und obj
:R: put Ergebnisse der Funktion in entsprechenden ursprünglichen Position der Eingänge nach einer Teilmenge
time <- c(1, 1, 2, 2, 3, 3)
money <- c(2, 2, 4, 4, 6, 6)
ownership <- c(1, 0, 1, 0, 1, 0)
randomstuff <- matrix(runif(18),nrow = 3)
mat <- rbind(time, money, ownership, randomstuff)
dat <- c(1, 0, 2, 0, 3, 0)
obj <- matrix(dat,nrow=1)
ich sie durch eine Funktion leite:
f <- function(mat,obj){fake function outputting a vector the same length as obj}
soln <- f(mat, obj).
wo soln
ist eine 1x6-Matrix.
Wie kann ich (elegant - das ist eigentlich eine 70000+ Spaltenmatrix) verwandeln die Matrizen mat
und obj
zu:
time <- c(1, 2, 3)
money <- c(2, 4, 6)
ownership <- c(1, 1, 1)
mat <- rbind(time, money, ownership, randomstuff)
dat <- list(1, 2, 3)
obj <- matrix(dat,nrow=1)
mit den soln
eine 1x3-Matrix ist.
soln= [,1] [,2] [,3]
[1,] 4.151969 5.759826 5.537563
wenn die Entscheidung eine Spalte aus mat
auszuschließen wird in ownership[]=0
und das gleiche für obj
basierend auf dem Wert. Die zusätzliche Schwierigkeit besteht darin, dass ich in der Lage sein muss, die Ausgabe in soln
der zugeordneten ursprünglichen Position in einer größeren SOLN
Matrix zuzuordnen. In diesem Fall sind die Spalten 1,3,5. Das Eigentum wird nach dem Zufallsprinzip zugewiesen, so dass es kein anderes Muster als die oben beschriebenen Nullen gibt.
Der Vorschlag zu verwenden:
obj2 <- obj[, as.logical(ownership), drop = FALSE]
mat2 <- mat[, as.logical(ownership)]
funktioniert perfekt für dieses Stück. Wie setze ich die soln
Werte in Positionen 1,3,5 einer größeren SOLN
Matrix? Die folgende SOLN
Matrix ist ein Beispiel für eine mögliche Ausgabe. In diesem Fall möchte ich, dass die Spalten 1, 3 und 5 mit dieser Funktion gefüllt werden. Nachfolgende Operationen (gleiche Operation verschiedene ownership
) wird Spalten füllen 2, 4 und 6.
SOLN = [,1] [,2] [,3] [,4] [,5] [,6]
[1,] 4.151969 1.08251 5.759826 3.368613 5.537563 3.471643
Irgendwelche Ideen?
'mat [, as.logical (Besitz)]; obj [, as.logical (Besitz), drop = FALSE] '? –
@DavidArenburg Danke! Dies bringt mich sicherlich auf die Teilmenge Stück. Es ist das Mapping zurück, das mich jetzt noch hat. Ich werde die Frage bearbeiten. – jjhold
Ich bin sehr verwirrt, wie die 'SOLN'-Matrix aussehen sollte. Könnten Sie bitte am Ende eine Beispielausgabe geben, die Sie wollen? – Barker