raster::aggregate() 函数不适用于我自己的函数

Posted

技术标签:

【中文标题】raster::aggregate() 函数不适用于我自己的函数【英文标题】:raster::aggregate() function not work for my own function 【发布时间】:2012-06-04 01:59:10 【问题描述】:
require(raster)

## Function to aggregate
fun.patch <- function(x) 
  if (max(table(x)) >= 0.9 * length(x)) 
    return(as.vector(which.max(table(x))))
  
  else
    return(NA)


r.lc <- raster(nrows = 100, ncols = 100)
r.lc[] <- 1:6
aggregate(r.lc, fact = c(5,5), fun.patch)

FUN(newX[, i], ...) 中的错误:未使用的参数 (na.rm = TRUE)

【问题讨论】:

?raster::aggregate。您传递的函数应该接受或忽略 na.rm 参数。 【参考方案1】:

来自?raster::aggregate - 您传递的函数应该接受或忽略na.rm 参数

要忽略,请在函数参数中包含...

fun.patch <- function(x,...) 
  if (max(table(x)) >= 0.9 * length(x)) 
  return(as.vector(which.max(table(x))))
  
else
  return(NA)


r.lc <- raster(nrows = 100, ncols = 100)
r.lc[] <- sample(1:6, 100^2, replace = T)
aggregate(r.lc, fact = c(5,5), fun.patch)

【讨论】:

以上是关于raster::aggregate() 函数不适用于我自己的函数的主要内容,如果未能解决你的问题,请参考以下文章

为啥逻辑适用于函数但不使用类,合并排序算法

E6箭头函数在哪些时候不适用

调用画布函数`loadFromJson`时混合过滤器不适用

由于 `HashMap.getOrDefault()` 函数中的接收器类型不匹配,以下候选均不适用

论普通函数和箭头函数的区别以及箭头函数的注意事项不适用场景

论普通函数和箭头函数的区别以及箭头函数的注意事项不适用场景