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