R:根据之前的数据和id动态聚合
我有一个非常大的数据集,看起来简化如下:R:根据之前的数据和id动态聚合,r,aggregate,stata,R,Aggregate,Stata,我有一个非常大的数据集,看起来简化如下: row. member_id entry_id comment_count timestamp 1 1 a 4 2008-06-09 12:41:00 2 1 b 1 2008-07-14 18:41:00 3 1 c
row. member_id entry_id comment_count timestamp
1 1 a 4 2008-06-09 12:41:00
2 1 b 1 2008-07-14 18:41:00
3 1 c 3 2008-07-17 15:40:00
4 2 d 12 2008-06-09 12:41:00
5 2 e 50 2008-09-18 10:22:00
6 3 f 0 2008-10-03 13:36:00
row. member_id entry_id comments_count timestamp aggregated_count
1 1 a 4 2008-06-09 12:41:00 4
2 1 b 1 2008-07-14 18:41:00 5
3 1 c 3 2008-07-17 15:40:00 8
4 2 d 12 2008-06-09 12:41:00 12
5 2 e 50 2008-09-18 10:22:00 62
6 3 f 0 2008-10-03 13:36:00 0
现在我想创建一个新的专栏,在这个专栏中,我总结了来自同一位成员的所有先前想法(“ID”)的“共同点”。因此,我只想总结在当前条目之前发生的entried的注释计数。我可以根据成员id和时间戳对数据集进行排序
结果应该如下所示:
row. member_id entry_id comment_count timestamp
1 1 a 4 2008-06-09 12:41:00
2 1 b 1 2008-07-14 18:41:00
3 1 c 3 2008-07-17 15:40:00
4 2 d 12 2008-06-09 12:41:00
5 2 e 50 2008-09-18 10:22:00
6 3 f 0 2008-10-03 13:36:00
row. member_id entry_id comments_count timestamp aggregated_count
1 1 a 4 2008-06-09 12:41:00 4
2 1 b 1 2008-07-14 18:41:00 5
3 1 c 3 2008-07-17 15:40:00 8
4 2 d 12 2008-06-09 12:41:00 12
5 2 e 50 2008-09-18 10:22:00 62
6 3 f 0 2008-10-03 13:36:00 0
你知道我如何在R(或Stata)中做到这一点吗?我尝试了聚合,但我不明白如何只对当前时间戳之前的注释计数和当前成员id的注释计数求和。试试这个(假设df
是您的数据)
其他一些方法(为提高效率而引入): 或 试试这个(假设
df
是您的数据)
其他一些方法(为提高效率而引入): 或 与Stata一起:
clear
set more off
*----- example data -----
input ///
row member_id str1 entry_id comment_count str30 timestamp
1 1 a 4 2008-06-09 12:41:00
2 1 b 1 2008-07-14 18:41:00
3 1 c 3 2008-07-17 15:40:00
4 2 d 12 2008-06-09 12:41:00
5 2 e 50 2008-09-18 10:22:00
6 3 f 0 2008-10-03 13:36:00
end
list
*----- what you want -----
bysort member_id: gen s = sum(comment_count)
list
这只涉及使用by:
前缀。和Stata:
clear
set more off
*----- example data -----
input ///
row member_id str1 entry_id comment_count str30 timestamp
1 1 a 4 2008-06-09 12:41:00
2 1 b 1 2008-07-14 18:41:00
3 1 c 3 2008-07-17 15:40:00
4 2 d 12 2008-06-09 12:41:00
5 2 e 50 2008-09-18 10:22:00
6 3 f 0 2008-10-03 13:36:00
end
list
*----- what you want -----
bysort member_id: gen s = sum(comment_count)
list
这只需要使用
by:
前缀。提供您的数据列表,以便其他人可以处理并回答您的问题。如果没有样本数据,将很难为您提供帮助。请阅读:“包括您尝试过的内容的详细信息”;“不要问你还没有找到答案的问题(展示你的作品!)”。请提供一个最小的、自包含的示例:请参阅、和。向我们展示您尝试过的代码、卡住的地方以及预期的输出。提示:这应该很简单,但不要让其他人想象数据是什么样子。展示给我们。非常感谢你到目前为止的链接。我试图提供一个很好的例子,希望你能帮助我。提供一份你的数据,以便其他人可以在这方面的工作,并回答你的问题。如果没有样本数据,将很难为您提供帮助。请阅读:“包括您尝试过的内容的详细信息”;“不要问你还没有找到答案的问题(展示你的作品!)”。请提供一个最小的、自包含的示例:请参阅、和。向我们展示您尝试过的代码、卡住的地方以及预期的输出。提示:这应该很简单,但不要让其他人想象数据是什么样子。展示给我们。非常感谢你到目前为止的链接。我试图提供一个好的例子,希望你们能帮助我。这就是当你们提供一个可复制的例子和期望的输出时会发生的事情。您在不到5分钟的时间内得到正确答案:)当您提供可复制的示例和所需的输出时,就会发生这种情况。您在不到5分钟内得到正确答案:)