Ich versuche, über eine Schleife in Anwendung auf eine Matrix zu schreiben. Insbesondere möchte ich den Dataset sortieren und jeden Wert in jeder Variable auf der Grundlage des Medianwerts für diese bestimmte Variable auf Hoch oder Niedrig festlegen. Diese hohen Tiefs würden in die Matrix eingegeben werden.Ich kann nicht schreiben in Matrix von Schleife in R
Mein Code so weit ist:
df ich arbeite mit einem Datensatz mit 36 Zeilen und eine große Anzahl von Spalten, obwohl ich für diesen Fall in einer Auswahl von ihnen nur interessiert.
rows <- 36
columns <- 100
output <- matrix(ncol = columns, nrow = rows)
apply(df[,463:500],2, function(x)
for (i in 1:36){
if (x[i] <= median(x)){
output[i,x-462] <- "low"
}
else
output[i,x-462] <- "high"
})
Zuerst ist, wenn es NAs in meinem Code ich die Störung erhalte: Fehler if (x [i] < = Median (x)) {: fehlende Wert in dem WAHR/FALSCH benötigt
und ich weiß nicht, wie R die NAs ignorieren.
Das zweite Problem ist, dass selbst, wenn ich ohne NAs nur Spalten in df verwende, gibt den Code nur null und die Matrix ist noch leer
Ich weiß einfach, dass zum Beispiel an die Matrix Werke zu schreiben:
> output[1,1] <- "low"
> output[1,1]
[1] "low"
das fühlt sich an wie es sollte wirklich einfach sein, irgendwelche Ideen?
Dank
brauchen wir eine 'dput()' 'von df' –
R ist eine funktionale Programmiersprache, Funktion Nebenwirkungen nicht standardmäßig haben und somit nicht Matrix definiert ändern draußen. Normalerweise können Sie entweder eine for-Schleife verwenden oder wenn Sie 'apply()' verwenden möchten, erstellen Sie eine neue Matrix. – Psidom