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() 函数不适用于我自己的函数的主要内容,如果未能解决你的问题,请参考以下文章