Zählen Sie die Anzahl der Paare über Elemente in einer Liste in R?

Elektrino

Ähnliche Fragen wurden zum Zählen von Paaren gestellt, jedoch scheint keine für das, was ich zu tun versuche, besonders nützlich zu sein.

Ich möchte die Anzahl der Paare über mehrere Listenelemente hinweg zählen und in eine Matrix umwandeln. Wenn ich zum Beispiel eine Liste wie diese habe:

myList <- list(
  a = c(2,4,6),
  b = c(1,2,3,4),
  c = c(1,2,5,7),
  d = c(1,2,4,5,8)
)

Wir können sehen, dass das Paar 1:2dreimal vorkommt (jeweils einmal in a, b, und c). Das Paar 1:3erscheint nur einmal in b. Das Paar 1:4erscheint 2 mal (je einmal in bund d)... usw.

Ich möchte zählen, wie oft ein Paar auftaucht und es dann in eine symmetrische Matrix umwandeln. Zum Beispiel würde meine gewünschte Ausgabe in etwa wie die von mir manuell erstellte Matrix aussehen (wobei jedes Element der Matrix die Gesamtzahl für dieses Wertepaar ist):

> myMatrix
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,]    0    3    1    2    2    0    1    1
[2,]    3    0    1    3    2    1    1    1
[3,]    1    1    0    1    0    0    0    0
[4,]    2    3    1    0    0    0    0    1
[5,]    2    2    0    0    0    0    1    1
[6,]    0    1    0    0    0    0    0    0
[7,]    1    1    0    0    1    0    0    0
[8,]    1    1    0    1    1    0    0    0

Alle Vorschläge sind sehr willkommen

akrun

Wir könnten eine Schleife über die list, bekommen Sie die paarweise Kombinationen mit combn, um stackes zu einem zweispaltigen Datensatz konvertieren die Spalte ‚Werte‘ zu factormit levelsangegeben als 1 bis 8, erhalten die Frequenzzählung ( table), tut ein Kreuzprodukt ( crossprod), wandeln den Ausgang zurück zu logisch, und dann Reducedie listElemente durch elementweises Hinzufügen und schließlich die diagonalen Elemente auf 0 zuweisen . (Setzen Sie bei Bedarf die namesAttribute von dimnamesauf NULL

out <- Reduce(`+`, lapply(myList, function(x) 
        crossprod(table(transform(stack(setNames(
          combn(x,
         2, simplify = FALSE), combn(x, 2, paste, collapse="_"))), 
          values = factor(values, levels = 1:8))[2:1]))> 0))
diag(out) <- 0
names(dimnames(out)) <- NULL

-Ausgang

> out
  1 2 3 4 5 6 7 8
1 0 3 1 2 2 0 1 1
2 3 0 1 3 2 1 1 1
3 1 1 0 1 0 0 0 0
4 2 3 1 0 1 1 0 1
5 2 2 0 1 0 0 1 1
6 0 1 0 1 0 0 0 0
7 1 1 0 0 1 0 0 0
8 1 1 0 1 1 0 0 0

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Zählen Sie die Anzahl der eindeutigen Elemente in einer Liste

Zählen Sie die Anzahl der Paare in der Liste ohne Berücksichtigung der Reihenfolge

Zählen Sie die Anzahl der Elemente, die 1 in einer Liste in einem Liner zurückgeben

Stellen Sie fest, ob die Anzahl der Elemente in einer Liste gerade ist, ohne zu zählen

Zählen Sie die Anzahl der wiederholten Elemente in der Liste unter Berücksichtigung derjenigen, die größer als sie sind

Zählen Sie die Anzahl der Elemente für jede Zeile in einer Matrix

Zählen Sie die Anzahl der Erscheinungen in einer Liste, Trick?

Zählen Sie die Anzahl der doppelten Tupel in einer Liste

So zählen Sie die Anzahl der markierten Elemente und die Anzahl der Gesamtelemente in einer Aufgabenliste

Pandas: Zählen Sie für jedes Element in einer Spalte die Anzahl der verschiedenen Elemente in einer anderen Spalte

Zählen Sie die Anzahl der Elemente über die Laravel-Beziehung

Zählen der Anzahl der Elemente, die sich in einer Liste nicht ändern, in F #

Zählen der Anzahl der Elemente in einer Liste und anschließendes Zählen als Liste in R.

Zählen Sie die Anzahl der Elemente zwischen 2 Daten abhängig von einer Variablen in R.

Zählen Sie die Anzahl der Elemente in der Liste der Matrizen und geben Sie sie basierend auf einer Bedingung zurück

Zählen Sie die Anzahl der eindeutigen Elemente am Index in der 2D-Liste

Java - Wie füge ich einer Array-Liste Elemente in aufsteigender Reihenfolge hinzu und zähle die Anzahl der Paare in der Array-Liste?

Zählen Sie die Anzahl der Elemente, die eine Datei mit einer anderen übereinstimmen, mit AWK

Zählen Sie die Anzahl der Elemente mit einer Bedingung in der MongoDB-Sammlung

Zählen der Anzahl verschiedener Elemente in einer Liste in Coq

Zählen Sie die Anzahl der Elemente in meiner Array-Liste

Zählen Sie die Anzahl bestimmter Elemente zwischen anderen Elementen in der Liste

Gibt es eine Möglichkeit, den Code für die Paarung der Elemente in einer Liste zu optimieren und die Anzahl der Paare zu generieren?

Zählen Sie die Anzahl der Elemente in einer durch Komma getrennten Zeichenfolge

Zählen Sie die Anzahl der Elemente in einer Shell-Variablen

Zählen Sie die Anzahl der Elemente in einer JSON-Zeichenfolge

Zählen Sie die Anzahl der Elemente in einer Zeichenfolge. Array c #

Zählen Sie die Anzahl der wiederholten Elemente in einer Reihe in einem numpy-Array

Zählen Sie die Anzahl der Elemente in Spaltenpandas basierend auf dem Wert einer anderen Spalte

TOP Liste

heißlabel

Archiv