Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 基于多个滞后或基于前N行创建指标变量_R_Dplyr - Fatal编程技术网

R 基于多个滞后或基于前N行创建指标变量

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

我正在寻找更具可扩展性的技术,以创建基于多个滞后的指标变量。下面是一个可复制的示例,显示了_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_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
并行化,请看一看。