[英]Make the previous 360 and following 360 values NA if the statement is true
我有一个值的数据框(以10分钟为步长,为3年),我希望如果障碍大于900,则x在该时间内获得NA,并且以前的360和随后的360个值也获得NA。 x和barrier包含NA。
x我的价值我想通过障碍来解决的问题
障碍物,如果障碍物超过900,则我的x值应为NA。df $ x <-ifelse(df $ barrier> 900,NA,df $ x)在这里可以看到。
但我也希望之前的6小时= 360值也应该获得NA,以及接下来的6小时= 360值x。
您可以在图片上看到,如果障碍(粉红色线)超过900,则先前和之后的值也会受到影响(跳跃),因此,我希望前后的x值也获得NA。
我的问题是我不知道如何删除x的上一个和下一个值
您可能会找到更优雅的方式,但这可行:
indeks <- df$barrier > 900
for(i in 1:360){
if(indeks[i]==T){
df$x[1:(i+360)] <- NA
}
}
for(i in (360+1):(length(indeks)-361)){
if(indeks[i]==T){
df$x[(i-360):(i+360)] <- NA
}
}
for(i in (length(indeks)-360):length(indeks)){
if(indeks[i]==T){
df$x[(i-360):lentgh(index)] <- NA
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.