我有一个数据框的值(3年10分钟步骤),我希望如果屏障高于900,那时x得到NA,前一个360和后面的360值也得到NA。 x和屏障包含NA。
但我想要的是,之前的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
}
}