【发布时间】:2021-11-03 04:32:06
【问题描述】:
我正在跟踪治疗周周围的暴力事件,以查看治疗是否对其周围的事件计数产生影响。该表分为国家周,记录了 1989 年至 2019 年间大多数国家的暴力事件。它与此类似,但总共约。 120 个国家和 70k 行:
Country Year Week Event_Count Treatment
------- ---- ---- ----------- ---------
Angola 1995 33 3 NA
Angola 1995 34 2 NA
Angola 1995 35 3 NA
Angola 1995 36 0 NA
Angola 1995 37 4 1
Angola 1995 38 1 NA
Angola 1995 39 0 NA
Angola 1995 40 2 NA
Angola 1995 41 3 NA
我想在治疗周(在这种情况下,第 37 周由治疗列中的“1”表示)到 12 周的两个方向上以 4 周为间隔计算平均每周事件计数。换句话说,第 -1 到 -4 周将是 2 个事件,因为这是第 33 周到第 36 周的平均每周事件数。第 0 周(在本例中为第 37 周)将是 4。第 1 到第 4 周(38 到 41 ) 将是 1.5。 -5 到 -8 周(第 29 到 32 周)、5 到 8 周(42 到 45 周)、-9 到 -12 周(25 到 28 周)和 9 到 12 周(46 到 49 周)将是平均每周值他们各自的垃圾箱。我正在使用回归不连续设计,所以我想对刚刚错过接受治疗的国家做同样的事情,在治疗栏中用“0”表示。处理列中的所有其他值都是“NA”。 我正在考虑这样的编码:
aggregate(df[row_interval, column_interval], list(df$Country), mean)
但由于我将在同一个国家/地区查看几个治疗周,并且治疗周定期变化(例如,安哥拉,1995 年第 37 周;阿尔及利亚,1998 年第 12 周等),所以这行不通。理想情况下,我想将“0”和“1”治疗的输出与治疗周放在同一行。例如:
Country Year Week Event_Count Treatment -12to-9 -8to-5 -4to-1 0 1to4 5to8 9to12
------- ---- ---- ----------- --------- ------- ------ ------ - ---- ---- -----
Algeria 2002 14 4 0 3 0.5 1 4 2 5 2
我试图将相似周的输出放在同一列中,无论接受“0”还是“1”进行治疗。例如,治疗后第 1 至 4 周的所有值都将属于“1to4”列。
提前感谢您的帮助!我对 stack 和 r 还很陌生,所以对于任何混淆,我深表歉意。
【问题讨论】:
-
你只需要-12~+12吗?