Ich bin sehr überrascht, diese Frage wurde nicht gestellt, vielleicht wird die Antwort warum klären. Ich möchte Zeilen einer Matrix mit einem Vektor vergleichen und zurückgeben, ob die Zeile == der Vektor überall ist. Siehe das Beispiel unten. Ich möchte eine vektorisierte Lösung, keine Anwendungsfunktionen, da die Matrix zu groß für eine langsame Schleife ist. Angenommen, es gibt auch viele Zeilen, deshalb möchte ich vermeiden, den Vektor neu zu bilden.überprüfen, ob Matrix Zeilen gleich einem Vektor in R, vektorisiert
set.seed(1)
M = matrix(rpois(50,5),5,10)
v = c(3 , 2 , 7 , 7 , 4 , 4 , 7 , 4 , 5, 6)
M
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 4 8 3 5 9 4 5 6 7 7
[2,] 4 9 3 6 3 1 5 7 6 1
[3,] 5 6 6 11 6 4 5 2 7 5
[4,] 8 6 4 4 3 8 3 6 5 6
[5,] 3 2 7 7 4 4 7 4 5 6
Ausgabe sollte
FALSE FALSE FALSE FALSE TRUE
Ich hatte gehofft, rep zu vermeiden, mit(), weil M eine sehr sehr große Matrix ist, so ein anderer für diese einfache logische Aufgabe zu machen beschwerlich sein wird. – robertevansanders
Ist 'colSums (t (M) == v) == ncol (M)' besser? Es ist nicht so "* einfache logische Aufgabe *" btw –
Ja Das ist großartig. – robertevansanders