I haben die folgende Tabelle zu maximieren, original_table
die aus dem Vergleich der Häufigkeit der Zahlenpaare über den gleichen Indizes von vector_1
und vector_2
ergibt:Umkodierung Werte in einem Vektor, der die Anzahl der Paare von der gleichen Anzahl in einem anderen Vektor
vector_1 <- c(5, 6, 5, 4, 6, 6, 4, 1, 6, 7, 5, 3, 3, 4, 4, 7, 7, 7, 2, 7, 2, 6, 1)
vector_2 <- c(1, 2, 1, 3, 4, 4, 4, 2, 4, 7, 2, 5, 5, 3, 3, 6, 7, 7, 6, 3, 6, 7, 2)
original_table <- table(vector_1, vector_2)
str(original_table)
vector_2
vector_1 1 2 3 4 5 6 7
1 0 2 0 0 0 0 0
2 0 0 0 0 0 2 0
3 0 0 0 0 2 0 0
4 0 0 3 1 0 0 0
5 2 1 0 0 0 0 0
6 0 1 0 3 0 0 1
7 0 0 1 0 0 1 3
Ich versuche, die Werte von vector_1
zu rekodieren, um die Anzahl der Paare der gleichen Anzahl für Werte mit dem gleichen Index in vector_2
zu maximieren. Ich versuche schließlich, diese zu rekodieren, um die Doppelspaltüberkreuzung zu verwenden, die durch Breckenridge (2000) beschrieben wird.
Die einzige „Regel“ ist, dass jeder Wert mit einem eindeutigen Wert umcodiert werden muss, so dass beide 1
und 2
können nicht beide als 3
umcodiert werden, zum Beispiel.
Ich habe diese mehr oder weniger manuell auf diese Weise durchgeführt unter Verwendung von car::recode
:
vector_1 <- car::recode(vector_1, "6 = 4; 7 = 7; 4 = 3; 5 = 1; 3 = 5; 2 = 6; 1 = 2")
optimized_table <- table(vector_1, vector_2)
str(optimized_table)
vector_2
vector_1 1 2 3 4 5 6 7
1 2 1 0 0 0 0 0
2 0 2 0 0 0 0 0
3 0 0 3 1 0 0 0
4 0 1 0 3 0 0 1
5 0 0 0 0 2 0 0
6 0 0 0 0 0 2 0
7 0 0 1 0 0 1 3
Es gibt mindestens ein paar Probleme mit ihm auf diese Weise tun: Ich habe es eyeballed, also bin ich nicht sicher ist der optimale Weg, um die Gesamtzahl der Paare von Vektoren zwischen den Vektoren zu maximieren, und es ist nicht einfach mit einem anderen Datensatz zu reproduzieren. Ich suche nach einer Möglichkeit, dies besser/automatisch zu tun, aber ich kann nicht leicht einen programmatischen oder intelligenten Ansatz dafür finden.