1

ユーザーが空間ポリゴン データ フレームから指定した変数に対して GWR を実行する R 関数を作成しようとしています。関数の実行の最終結果は、2 つのマッピング (独立変数の値の 1 つと GWR モデルの係数値の 1 つ) です。2番目のマップに問題があります。

GWR モデルと、視覚化する係数の「結果」オブジェクトを作成できました。

  gwr.model <- gwr(SpatialPolygonsDataFrame@data[, y] ~ SpatialPolygonsDataFrame@data[, x], 
                   data = SpatialPolygonsDataFrame, 
                   adapt = GWRbandwidth, 
                   hatmatrix = TRUE, 
                   se.fit = TRUE)    
  results <- as.data.frame(gwr.model$SDF)
  gwr.map <- SpatialPolygonsDataFrame
  gwr.map@data <- cbind(SpatialPolygonsDataFrame@data, as.matrix(results))

GWR係数の視覚化を作成するにはtm_fill()、「結果」オブジェクトの列になるように指定する必要がありますが、どの空間ポリゴン データ フレームでも関数を使用できるようにする方法がわかりません。これまでのところ、次のようにpaste0()関数を使用してみました。

map2 <- tm_shape(gwr.map) + tm_fill(paste0("SpatialPolygonsDataFrame.", x), n = 5, style = "quantile", title = "Coefficient") +
        tm_layout(frame = FALSE, legend.text.size = 0.5, legend.title.size = 0.6)

しかし、fill 引数が色でも有効な変数名でもないというエラーが表示されました。

問題の解決に役立つヒントがあれば、よろしくお願いいたします。

4

1 に答える 1

0

パッケージに切り替えるsf- 置き去りspにする - おそらくここであなたの問題を解決します。

再現可能な例がないので、ここで次のことを提案してみましょう: 結果を で変換しますgwr.map.sf <- sf::st_as_sf(gwr.map)。次に、GWR の結果を単純に新しい列として追加しますgwr.map$results <- results(私の理解では、寸法が収まるはずです)。

最後に、次のようにプロットできるはずです。

map2 <- tm_shape(gwr.map.sf) + tm_fill("results", n = 5, style = "quantile", title = "Coefficient") +
        tm_layout(frame = FALSE, legend.text.size = 0.5, legend.title.size = 0.6)
于 2021-01-10T09:28:40.627 に答える