Ich habe zwei kleine Datenrahmen, this_tx
und last_tx
. Sie sind, in jeder Hinsicht, die ich sagen kann, völlig identisch. this_tx
== last_tx
ergibt sich ein Rahmen mit identischen Abmessungen, alle TRUE
. this_tx %in% last_tx
, zwei TRUEs
. Sichtprüfung visuell, eindeutig identisch. Aber wenn ich rufeWas macht diese beiden R-Datenrahmen nicht identisch?
identical(this_tx, last_tx)
Ich bekomme eine FALSE
. Vergnügt, auch
identical(str(this_tx), str(last_tx))
eine TRUE
zurück. Wenn ich this_tx <- last_tx
einstelle, erhalte ich eine TRUE
.
Was ist los? Ich habe nicht das tiefste Verständnis für die interne Mechanik von R, aber ich kann keinen einzigen Unterschied zwischen den beiden Datenrahmen finden. Wenn es relevant ist, sind die beiden Variablen in den Rahmen beide Faktoren - gleiche Ebenen, gleiche numerische Codierung für die Ebenen, beide nur Teilmengen desselben ursprünglichen Datenrahmens. Die Konvertierung in Zeichenvektoren hilft nicht.
Hintergrund (weil ich auch nichts dagegen haben würde): Ich habe Aufzeichnungen über medikamentöse Behandlungen an Patienten gegeben. Jeder Behandlungsdatensatz spezifiziert im Wesentlichen eine Person und ein Datum. Eine zweite Tabelle enthält eine Aufzeichnung für jedes Medikament und jede Dosis, die während einer bestimmten Behandlung verabreicht werden (normalerweise werden bei jeder Behandlung ein paar Medikamente verabreicht). Ich versuche, zusammenhängende Perioden zu identifizieren, in denen die Person die gleichen Kombinationen von Drogen in den gleichen Dosen nahm.
Der beste Plan, den ich mir ausgedacht habe, ist, die Behandlungen chronologisch zu überprüfen. Wenn die Kombination von Medikamenten und Dosen für die Behandlung [i] mit der Kombination bei der Behandlung [i-1] identisch ist, dann ist die Behandlung [i] ein Teil derselben Phase wie die Behandlung [i-1]. Natürlich, wenn ich Drogen/Dosis-Kombinationen nicht vergleichen kann, das ist richtig.
Wenn Sie ein Beispielpaar von Datenrahmen posten könnten, würde es helfen - vorzugsweise als Ergebnis der Ausführung von 'dput()' in den Frames. – Sharpie
Sharpie gewinnt. Die zwei Datenrahmen trugen immer noch die Reihe.Name des Mutter-Datenrahmens, die in einem dput(), aber nicht str() angezeigt wird. Sharpie, wenn du als Antwort postest, werde ich es am besten markieren. –
Ich bin wirklich überrascht - ich dachte immer 'str' war eine" schönere "Version von' dput'. Schätze es stellt sich heraus, dass es nur eine Zusammenfassung ist. – Sharpie