我经常使用R中的数据帧,其中不同的参数在每个人的不同时间点记录了多个测量值。到目前为止,我已经在同一个人的每行上重复了"常量"参数,如年龄和性别,但不知何故,一次又一次重复相同的信息似乎有点微不足道。
基本上,我希望能够从两个数据帧中获取和"合并"信息,例如,当拟合模型时,如:
glm(hormone_level ~ time_point + age + gender, random = ~ 1 | patient_id)
从数据帧1中获取hormone_level
和time_point
,从数据帧2中获取age
和gender
(见下文)。
我不确定我是否在寻找列表上的信息,或者最好使用函数将两个数据框架中的相关信息合并为第三个。你知道我可以在哪里找到更多关于这个主题的信息,最好是一些有用的例子吗?
数据帧1:
patient_id time_point hormone_level
001 1 55
001 2 85
001 3 105
002 1 48
...
数据帧2:
patient_id age gender
001 30 M
002 45 F
003 32 F
...
在您的示例中,数据帧1是实验数据,数据帧2是主题元数据。数据帧2实际上是一个主题列表,patient_id
是主键(在数据库术语中)。您需要使用此键查找数据帧2中的值,并将它们添加到数据帧1中,或者更恰当地说,执行"连接"。有许多方法可以做到这一点,但我推荐使用dplyr
中的join
函数。例如
library(dplyr)
left_join(df1, df2, by="patient_id")
将在数据帧1中添加年龄和性别。然后,您可以对新的df进行分析。
这里有一个很好的博客条目:https://blog.exploratory.io/joining-two-data-sets-to-supplement-or-filter-172bbb6804e3#.v8mqhlsdl