是什么让这两个R数据帧不相同?

Mat*_*ker 6 comparison r dataframe

我有两个小数据框,this_txlast_tx.从各方面来说,它们都是完全相同的. this_tx== last_tx产生一个相同尺寸的框架,全部TRUE. this_tx %in% last_tx,两个TRUEs.视觉检查,明显相同.但是当我打电话时

identical(this_tx, last_tx)

我得到了FALSE.甚至是滑稽的

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

会回来的TRUE.如果我订this_tx <- last_tx,我会得到一个TRUE.

到底是怎么回事?我对R的内部机制没有最深刻的理解,但我找不到两个数据帧之间的单一差异.如果它是相关的,则帧中的两个变量都是因子 - 相同的级别,级别的相同数字编码,两者都只是相同原始数据帧的子集.将它们转换为字符向量并没有帮助.

背景(因为我不介意对此有所帮助):我有给患者的药物治疗记录.每个治疗记录基本上指定一个人和一个日期.第二个表格记录了在特定治疗期间给予的每种药物和剂量(通常,每种治疗给予少量药物).我正在尝试确定这个人在相同剂量下服用相同药物组合的连续时期.

我想出的最好的计划是按时间顺序检查治疗方法.如果药物和治疗剂量[i]的组合与治疗[i-1]的组合相同,则治疗[i]是与治疗[i-1]相同的一部分.当然,如果我无法比较药物/剂量组合,那就是正确的.

had*_*ley 8

通常情况下,在这种情况下尝试all.equal哪些会为您提供有关两个对象不相等的原因的信息.


Sha*_*pie 7

好吧,"moar specifics plz!"的疲惫的叫声!在这种情况下可能获胜:

dput()如果可能,检查输出和发布.str()只是总结一个对象的内容,同时dput()以一种形式转储所有血腥细节,这些形式可以被复制并粘贴到另一个R解释器中以重新生成该对象.