0
はのは、私は、各セルで発生するユニークなカテゴリの数に基づいてラスター地図を作成するための最良の方法だろう何ユニークな値からラスタを作成するには?
category longitude latitude a -83.7 26.2 b -83.7 26.2 b -84.6 26.2 c -82.4 25.7 a -80.1 27.7 b -75.9 34.5
のように見えるのデータフレームがあるとしましょうか?
地理空間データに慣れているわけではありませんが、私は以下のアプローチを使用しています。しかし、より良い/より速い解決策があるかもしれません。
library(raster)
library(ggplot2)
foo <- structure(list(category = c("a", "b", "b", "c", "a", "b"),
longitude = c(-83.7, -83.7, -84.6, -82.4, -80.1, -75.9),
latitude = c(26.2, 26.2, 26.2, 25.7, 27.7, 34.5)),
.Names = c("category", "longitude", "latitude"),
class = "data.frame",
row.names = c(NA, -6L))
split_foo <- split(foo, foo$category)
us_raster <- raster(xmn = -127, ymn = 23, xmx = -61, ymx = 50, res = 1)
raster_lst <- lapply(split_foo, function(x) {
pts <- SpatialPoints(data.frame(lon = foo$longitude, lat = foo$latitude))
rasterize(pts, us_raster, fun="count")
})
raster_foo <- Reduce("merge", raster_lst)
gg_foo <- as.data.frame(as(raster_foo, "SpatialPixelsDataFrame"))
colnames(gg_foo) <- c("value", "x", "y")
ggplot() +
geom_raster(data = gg_foo, aes(x = x, y = y, fill = value)) +
coord_quickmap()