Ich habe folgenden Datenrahmen, table5
, bestehend aus x
und ihrer Frequenz, von anderen Daten erzeugte counts
Verwendung:R: Erstellen Matrix von Werten von anderer Tabelle
x freq
1 1 3
2 3 21
3 4 21
4 5 1345
5 7 1
den Ich mag würde übertragen - in einer allgemeinen Art und Weise, das heißt für die Verwendung mit anderen Werten in der Originaldatenrahmen - in den folgenden Datenrahmen table5if
:
Frequency
3 21
4 21
5 1345
other 4
also dort, wo die Frequenz der Zahlen 3, 4 und 5 direkt übertragen wird, und al l andere Nummern werden in other
addiert. Meine jüngste Versuch ist dies:
k <- seq(1, nrow(table5), by=1)
ifelse(table5$x[k] == 3, table5if[1] <- table5$freq[k],
ifelse(table5$x[k] == 4, table5if[2] <- table5$freq[k],
ifelse(table5$x[k] == 5, table5if[3] <- table5$freq[k], table5if[4] <- (table5if[4] + table5$freq[k])
)
)
)
Dieser Versuch und andere Versuche mit if(...){...} else {...} etc.
, alle haben irgendeine Form von Warnungen oder Fehler ergab (zB „Anzahl der Elemente zu ersetzen ...“ und „Anzahl der Dimensionen .. . "und habe keine überzeugenden Ergebnisse erzielt. Ich habe unzählige andere Fragen für beide Fehler/Warnungen durchgesehen und kann nicht ganz das finden, wonach ich suche - es gibt eine Menge über Vektorisierung, aber ich kann meine nicht ganz bekommen warum Kopf herum, dass das Problem wäre. Kann jemand bitte eine geeignete Option für diese kleine Aufgabe vorschlagen?
Warum nicht einfach alle Frequenzen addieren und dann die für die Zahlen 3, 4 und 5 subtrahieren, um die Summe für andere zu berechnen? –
Dies wäre sicherlich die einfachste Option! Ich bin auch ein Fan von vorgefertigten Funktionen zu vermeiden und es auf Mathematik und Logik zu halten. Vielen Dank für deinen Vorschlag, windrunn3r.1990! – Psydes