问题描述
我想获得根据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_birth
至Date_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
)可以有邻居(如上的ID1
,ID2
等),但也可以是另一个人的邻居(出现在{列中{1}}等。社交网络功能将两个邻近事件都视为相等。因此,如果列表中的元素包括具有例如在1个月大时,它还应包括在那些时间段内观察到的所有对象(如果某些邻居中列出了一些以前的FocalID,则它们),以便获得所有相关的邻近信息。
例如如果将FocalID 1和2归入列表的同一元素,因为它们都已经7个月大,并且它们分别在2018年的11个月和2016年的5个月取得了记录,那么在同一个月内观察到的其他FocalID也是如此(无论年龄如何,都应将11/2018和05/2016)纳入列表的同一元素。
我知道这是一个大并发症,但是任何建议都将非常受欢迎!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)