Ich habe diese Matrix:eine Spalte mit dem Wert des Objekts hinzufügen mit max Frequenz
mat=matrix(c(1,1,1,2,2,2,3,4,
4,4,4,4,4,3,5,6,
3,3,5,5,6,8,0,9,
1,1,1,1,1,4,5,6),nrow=4,byrow=TRUE)
print(mat)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 1 1 1 2 2 2 3 4
[2,] 4 4 4 4 4 3 5 6
[3,] 3 3 5 5 6 8 0 9
[4,] 1 1 1 1 1 4 5 6
und eine Untergruppe mit dem Index der Zeile Ich mag meine Funktion anwenden:
subset=c(2,4)
Ich möchte eine neue Spalte in der Matrix "mat" hinzufügen, die nur für die von mir spezifizierte Teilmenge den Wert des Objekts mit der maximalen Häufigkeit in der Zeile enthält.
In diesem Fall gilt:
- für Zeilennummer 1, ich möchte eine leere Zelle in der neuen Spalte haben,
- für Zeilennummer 2, würde ich den Wert gefallen „4“ haben, in der neuen Spalte,
- für Zeile Nummer 3, hätte ich gerne eine leere Zelle in der neuen Spalte,
- für Zeile Nummer 4, möchte ich den Wert "1" in der neuen Spalte haben.
EDIT: danke für den Code in der Antwort! jetzt sollte ich die NA mit anderen Werten Werte ersetzen: Ich habe eine andere Matrix:
mat2=matrix(c(24,1,3,2, 4,4,4,4, 3,2,2,5, 1,3,5,1),nrow=4,byrow=TRUE)
[,1] [,2] [,3] [,4]
[1,] 24 1 3 2
[2,] 4 4 4 4
[3,] 3 2 2 5
[4,] 1 3 5 1
und die Teilmenge:
subset=c(1,3)
Ich möchte die NA
der Matrix replcace (die restlichen Zeilen aus der ersten Untermenge) mit den Spaltennamen des Wertes der Zeile mit dem Maximalwert.
In diesem Fall habe ich "1" für die erste Zeile und "4" für die dritte Zeile.