我有一个数据的数值(3年10分钟的步骤),我想,如果屏障大于900,x得到NA的时间,而之前的360和以下的360值也得到NA。X和势垒中含有NAs。
我的数据包括:


但是我想要的是,之前的6小时=360值应该得到NA,接下来的6小时= 360值是x的值。
您可以在图片上看到,如果屏障(粉色线)超过900,前面和下面的值也会受到影响(跳转),因此我希望在获取之前和之后的x值也是NA。

我的问题是,我不知道如何删除之前和下面的x值。
发布于 2018-09-06 13:22:09
您可能会找到更优雅的方法,但这是可行的:
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
}
}https://stackoverflow.com/questions/52200869
复制相似问题