6

2 つの小さなデータ フレームthis_txlast_tx. それらは、私が知る限り、完全に同一です。 this_tx==last_txは同じ次元のフレームになり、 all TRUE. this_tx %in% last_tx、2つTRUEs。目視で確認すると明らかに同一。でも電話したら

identical(this_tx, last_tx)

を取得しFALSEます。陽気に、さえ

identical(str(this_tx), str(last_tx))

を返しますTRUE。を設定this_tx <- last_txすると、 が得られますTRUE

何が起こっている?私は R の内部メカニクスを深く理解しているわけではありませんが、2 つのデータ フレームの違いを 1 つも見つけることができません。関連する場合、フレーム内の 2 つの変数は両方とも要因です。同じレベル、レベルの同じ数値コーディング、両方とも同じ元のデータ フレームのサブセットです。それらを文字ベクトルに変換しても役に立ちません。

背景(これについても助けを求めないため):私は患者に与えられた薬物治療の記録を持っています. 各治療記録は、基本的に個人と日付を指定します。2 番目のテーブルには、特定の治療中に投与された各薬剤と用量の記録があります (通常、各治療で数種類の薬剤が投与されます)。私は、その人が同じ組み合わせの薬を同じ用量で服用していた連続した期間を特定しようとしています.

私が思いついた最善の計画は、治療を時系列で確認することです。治療[i]の薬物と用量の組み合わせが治療[i-1]での組み合わせと同一である場合、治療[i]は治療[i-1]と同じフェーズの一部です。もちろん、薬物と用量の組み合わせを比較できない場合は、それで問題ありません。

4

2 に答える 2

9

一般に、このような状況ではall.equal、2 つのオブジェクトが等しくない理由についての情報を得るために、どちらを試してみると便利です。

于 2010-04-22T01:33:19.353 に答える
7

さて、「moar specifics plz!」のうんざりした叫び。この場合、勝つ可能性があります:

の出力を確認し、dput()可能であれば投稿してください。str()オブジェクトの内容を要約するだけで、オブジェクトdput()を再生成するためにコピーして別のRインタープリターに貼り付けることができる形式ですべての悲惨な詳細をダンプします。

于 2010-04-22T01:13:29.060 に答える