伙计,我有问题。我的地图上有不寻常的灰色阴影。 我使用shapefile
countries <- readOGR(".","ne_50m_admin_0_countries")
或geojson
url <- "https://raw.githubusercontent.com/datasets/geo-countries/master/data/countries.geojson"
countries <- geojson_read(url, what = "sp")
没关系,两者都有相同的错误。
我以前遇到过这个问题,但没有找到可持续的解决方案,而我的搜索也无济于事,这就是为什么我在这里。
我如何着色?
# Color palette
colorFactors = colorFactor(c('red', 'orange', 'blue', 'green'),
domain = dfs_pg$Region)
# Create a map
leaflet(dfs_pg) %>%
addProviderTiles(providers$OpenStreetMap) %>%
addPolygons(stroke = FALSE,
fillOpacity = 0.75,
color = colorFactors(dfs_pg$Region), weight = 1)
有多个NA,我试图将它们省略-对我不起作用。我想保持NA与原始提供者相同的颜色而没有此阴影。
我将csv和geojson合并到空间数据框中。
对于任何提供程序,同样的问题。
非常感谢您的帮助! 谢谢!
答案 0 :(得分:0)
在R社区的帮助下完美解决。在此处输入图片说明
治疗NA是关键:
“”如果您查看data_pg_df $ Region,您会看到它具有许多NA:
---
myfacts_array:
- 123456
- 456789
使用data_pg_df $ Region == input $ regionInput,您正在将其与一个值进行比较,例如 “亚洲”。在R中,如果将值与NA进行比较,则得到NA。
> data_pg_df$Region
[1] NA NA NA NA NA
[6] NA NA NA "Latin America" NA
[11] NA NA NA NA NA
[16] NA NA NA NA NA
[21] NA NA NA NA NA
[26] NA NA NA NA NA
[31] NA NA NA NA NA
[36] NA NA NA "North America" NA
[41] NA "Asia" NA NA NA
[46] NA NA NA NA NA
[51] NA NA NA NA NA
[56] NA NA "Europe" NA NA
[61] NA NA NA NA NA
...
并且您不能使用NA索引到data_pg_df对象。
您需要以某种方式处理NA。我不确定是否适合您的数据集,但似乎您可能只想保留==解析为TRUE的行,并删除将导致NA和FALSE的行。为此,您可以使用is.na()添加支票:
> data_pg_df$Region == "Asia"
[1] NA NA NA NA NA NA NA NA FALSE NA NA NA NA
NA NA
[16] NA NA NA NA NA NA NA NA NA NA NA NA NA
NA NA
[31] NA NA NA NA NA NA NA NA FALSE NA NA TRUE NA
NA NA
[46] NA NA NA NA NA NA NA NA NA NA NA NA FALSE
NA NA
[61] NA NA NA NA NA NA NA NA NA NA NA NA NA
NA NA
...
... 因此,您将拥有:
!is.na(data_pg_df$Region) & data_pg_df$Region == "Asia"
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE
[16] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE
[31] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE
FALSE FALSE
[46] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE
[61] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE