根据年龄创建记录列表,并添加在r

问题描述

我想获得根据Age变量拆分的df列表(请参见下文)。列表的每个元素应为df,所有记录都与年龄相同的个人相关。

每个元素应包含彼此相距1个月大的个人。此拆分应独立于记录的年/月和出生年/月。也就是说,具有例如即使记录属于不同的年份/月份并且它们出生在不同的年份/月份,也应该将1个月大的年龄分组在一起。

例如第一个要素:具有1个月大(Age = 1)的个人的所有记录; 第二要素:具有两个月大的个人的所有记录(Age = 2); 等等...

这是来自df的示例:

FocalID     Date_record Year_record Month_record    Date_birth  Age ID1 ID2
ID1         2014-05-02  2014        5               2005-09-08  103 0   1
ID2         2014-05-05  2014        5               2008-11-26  65  1   0
   

Age计算为Date_birthDate_record间的时间(以月为单位)。后者与与其他个体的亲近记录有关(ID1, ID2 ,etc.; 0 =缺席, 1 =当前`)。这是分析社交网络所必需的数据格式。

要计算“年龄”,我使用了以下代码

df1J$Age = floor(age_calc(df1J$dob_corrected,df1J$Date,precise =T))

要创建dfs列表,我使用了split函数,并根据“ Age”变量创建了一个列表:

list = split(df,as.factor(df$Age))

但是,我还有一个问题是这些邻近数据是无向的。这意味着一个人(来自变量FocalID)可以有邻居(如上的ID1ID2等),但也可以是另一个人的邻居(出现在{列中{1}}等。社交网络功能将两个邻近事件都视为相等。因此,如果列表中的元素包括具有例如在1个月大时,它还应包括在那些时间段内观察到的所有对象(如果某些邻居中列出了一些以前的FocalID,则它们),以便获得所有相关的邻近信息。

例如如果将FocalID 1和2归入列表的同一元素,因为它们都已经7个月大,并且它们分别在2018年的11个月和2016年的5个月取得了记录,那么在同一个月内观察到的其他FocalID也是如此(无论年龄如何,都应将11/2018和05/2016)纳入列表的同一元素。

我知道这是一个并发症,但是任何建议都将非常受欢迎!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)