R 如何定义连续值?

R 如何定义连续值?,r,R,我举了一个例子: dat=c(2,1,1,2,3,4,2,5,6,7,8,1,2,4,5,6,7,3,4,5,2,3,1,2,1) 我想在开始之前[在平均值大于3的3个连续值出现之后]和结束之后赋值[定义为3个连续值的出现使用rollmean查找3个周期平均值,使用rollapply使用all查找连续值,这些值都是连续值。您可以为您提供的示例数据提供预期结果吗?zoo包具有rollmean功能,可以lpI增加了预期结果。 dat=c(NA,NA,NA,NA,NA,4,2,5,6,7,8,1,2

我举了一个例子:

dat=c(2,1,1,2,3,4,2,5,6,7,8,1,2,4,5,6,7,3,4,5,2,3,1,2,1)

我想在开始之前[在平均值大于3的3个连续值出现之后]和结束之后赋值[定义为3个连续值的出现使用
rollmean
查找3个周期平均值,使用
rollapply
使用
all
查找连续值,这些值都是连续值。您可以为您提供的示例数据提供预期结果吗?
zoo
包具有
rollmean
功能,可以lpI增加了预期结果。
dat=c(NA,NA,NA,NA,NA,4,2,5,6,7,8,1,2,4,5,6,7,3,4,5,2,3,NA,NA,NA)
library(zoo)

r1 <- rollmean(dat, 3, fill = NA, align = "left")
i1 <- which(r1 > 3)[1]

r2 <- rollapply(dat <= 3, 3, all, fill = NA, align = "left")
i2 <- tail(which(r2), 1)-1

replace(NA*dat, i1:i2, dat[i1:i2])
## [1] NA NA NA NA NA  4  2  5  6  7  8  1  2  4  5  6  7  3  4  5  2  3 NA NA NA