R 基于多个滞后或基于前N行创建指标变量
我正在寻找更具可扩展性的技术,以创建基于多个滞后的指标变量。下面是一个可复制的示例,显示了_prev_3中所需的新变量R 基于多个滞后或基于前N行创建指标变量,r,dplyr,R,Dplyr,我正在寻找更具可扩展性的技术,以创建基于多个滞后的指标变量。下面是一个可复制的示例,显示了_prev_3中所需的新变量——这意味着在前三条记录/行中至少找到了一个TRUE。虽然这是可行的,但它不能很好地扩展到N的大值(例如15、30、45等),也不灵活 库(tidyverse) 种子(4) df% 突变(最后3个=滞后(bool,3)+滞后(bool,2)+滞后(bool,1), in_prev_3=最后一个_3>0) #>#A tibble:20 x 4 #>id bool last_3 in
——这意味着在前三条记录/行中至少找到了一个TRUE
。虽然这是可行的,但它不能很好地扩展到N的大值(例如15、30、45等),也不灵活
库(tidyverse)
种子(4)
df%
突变(最后3个=滞后(bool,3)+滞后(bool,2)+滞后(bool,1),
in_prev_3=最后一个_3>0)
#>#A tibble:20 x 4
#>id bool last_3 in_prev_3
#>
#>1 1假NA NA
#>2 2假NA
#>3 3假NA
#>4 4假0假
#>5对0错
#>6假1真
#>7假1真
#>8对1对
#>9对1对
#>10假2真
#>11假2真
#>12假1真
#>13假0假
#>14对0错
#>15假1真
#>16假1真
#>17正确1正确
#>18假1真
#>19对1对
#>20假2真
由(v0.2.0.9000)于2018年8月28日创建。您能否测试这是否提供了您想要的结果:library(zoo);dplyr::lag(rollappyr(data=df$bool,width=3,FUN=any,fill=NA),1)
@markus看起来很像(如果你也使用align=“right”
!也可以尝试类似于tibbletime::rollify的东西,很高兴它起作用了。rollappyr
是rollappy(…,align=“right”)的缩写)
。错过了小的r
——如果您有兴趣了解如何将这种技术应用于多个窗口,并与r
并行化,请看一看。