如何从系列中获得逻辑值

时间:2018-10-17 02:38:29

标签: r if-statement na

我想使用SG过滤器将NA填充到光栅砖中。代码如下:`

fun = function(x) {
   v<-as.vector(x)
   z<-na.spline(v)
   gimms.ts2 <- ts(z, start=c(1982,1), end=c(2015,24), frequency=24)
   x <- sgolayfilt(gimms.ts2)
  }`

    gimms.filtered <- calc(s, fun)

我收到一个错误:zero non-NA points 我认为这是因为此栅格堆栈中的一些像元全部为NAs。例如,cell[200]NA NA NA... 我想使用if函数跳过那些单元格。我不知道该怎么做。我认为is.na不起作用。请帮助我!

1 个答案:

答案 0 :(得分:1)

请提供可重现的示例,其中包含一些由代码生成的简单示例数据。

您可能可以使它像这样工作:

fun = function(x) {
   v <- as.vector(x)
   if (all(is.na(v)) return(v)
   z <- na.spline(v)
   gimms.ts2 <- ts(z, start=c(1982,1), end=c(2015,24), frequency=24)
   sgolayfilt(gimms.ts2)
}