繁体   English   中英

通过 R 中的“最频繁”栅格化点

[英]Rasterize points by 'most frequent' in R

我有一系列空间数据点,我想使用 R 函数 rasterize 将它们转换为栅格。 我想要表示的数据是一个因子值,所以我想表示每个栅格单元最常出现的值。

我试图编写一个函数来获取模式,但它失败了。

getmode <- function(v) {
uniqv <- unique(v)
uniqv[which.max(tabulate(match(v, uniqv)))]
}   

#run rasterize
test <- rasterize(best, rast, best$val, fun = getmode)

导致此错误:

Error in FUN(X[[i]], ...) : unused argument (na.rm = na.rm)

请始终包含一个最小的独立可复制示例。 像这样

library(raster)
r <- raster(ncols=20, nrows=10)
n <- 1000
set.seed(123)
x <- runif(n) * 360 - 180
y <- runif(n) * 180 - 90
xy <- cbind(x, y)
v <- sample(10, n, replace=TRUE)

现在将...添加到您的函数中(请参阅?rasterize fun下的文档条目)。

getmode <- function(v, ...) {
   uniqv <- unique(v)
   uniqv[which.max(tabulate(match(v, uniqv)))]
}   

并使用它

m <- rasterize(xy, r, v, getmode)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM