Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如果我希望tm_fill()是来自新对象的变量,如何指定它?_R_Fill_Tmap_Spatial Data Frame_Gwr - Fatal编程技术网

R 如果我希望tm_fill()是来自新对象的变量,如何指定它?

R 如果我希望tm_fill()是来自新对象的变量,如何指定它?,r,fill,tmap,spatial-data-frame,gwr,R,Fill,Tmap,Spatial Data Frame,Gwr,我正在尝试创建一个R函数,该函数将对用户从空间多边形数据帧指定的变量运行GWR。运行该函数的最终结果是两个映射—一个独立变量的值和GWR模型的一个系数值。我在第二张地图上遇到了麻烦 我已经设法为我将要可视化的系数创建了GWR模型和“结果”对象 gwr.model <- gwr(SpatialPolygonsDataFrame@data[, y] ~ SpatialPolygonsDataFrame@data[, x], data = Spatia

我正在尝试创建一个R函数,该函数将对用户从空间多边形数据帧指定的变量运行GWR。运行该函数的最终结果是两个映射—一个独立变量的值和GWR模型的一个系数值。我在第二张地图上遇到了麻烦

我已经设法为我将要可视化的系数创建了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))
但是我得到一个错误,即fill参数既不是colors,也不是有效的变量名


如果有任何提示可以帮助我解决问题,我将不胜感激。

切换到软件包
sf
-将
sp
留在后面-可能会解决您的问题

在缺乏可复制示例的情况下,让我尝试提出以下建议:
使用
gwr.map.sf转换到包
sf
-将
sp
留在后面-可能会解决您的问题

在缺乏可复制示例的情况下,让我尝试提出以下建议: 使用
gwr.map.sf转换结果
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)
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)