瑞士语言地图中的矢量长度不匹配
Vector length mismatch in Swiss Language Map
我在学习this website
不明白some things:
con <- url("http://biogeo.ucdavis.edu/data/gadm2/R/CHE_adm1.RData")
print(load(con))
输出为
[1] "gadm"
代码通过关闭连接继续
close(con)
然后我执行
language <- c("german", "german", "german","german",
"german","german","french", "french",
"german","german","french", "french",
"german", "french","german","german",
"german","german","german", "german",
"german","italian","german","french",
"french","german","german")
老实说,我不知道这个人是怎么想出这个矩阵的,但后来我得到了错误
Error in `[[<-.data.frame`(`*tmp*`, name, value = c(2L, 2L, 2L, 2L, 2L, :
replacement has 27 rows, data has 26
请指导
似乎应该从第三行末尾的列表中删除一个 "french" 条目。我不知道这是示例中的错误还是地图数据的更改(以前位于 http://gadm.org/data/rda/CHE_adm1.RData , now at http://biogeo.ucdavis.edu/data/gadm2/R/CHE_adm1.RData)。
在任何情况下,我都可以使用以下方法复制网站上显示的地图:
language <- c("german", "german", "german","german",
"german","german","french", "french",
"german","german","french",
"german", "french","german","german",
"german","german","german", "german",
"german","italian","german","french",
"french","german","german")
如果您查看您提供的 link 中的评论部分,作者提到他对 语言 向量进行了硬编码。
http://blog.revolutionanalytics.com/2009/10/geographic-maps-in-r.html
关于错误,很简单。它通知 language 向量有 27 个条目,而只有 26 个瑞士语言区域(这可能来自 gadm 包 AFAIK)。因此,尝试从 language 向量中删除一个条目。
RHertel 解决了这个问题,但这是我的处理方法,作为背景可能有用;
library(raster)
g <- getData('GADM', level=1, country='CHE')
# create a data.frame of cantons and language
# set them to German (a common one)
lang <- data.frame(g$NAME_1, lang='German')
lang
# now fix the entries that need to be French or Italian
# and merge back to g (a SpatialPolygonsDataFrame)
g <- merge(g, lang, by='NAME_1')
spplot(g, 'lang')
我在学习this website
不明白some things:
con <- url("http://biogeo.ucdavis.edu/data/gadm2/R/CHE_adm1.RData")
print(load(con))
输出为
[1] "gadm"
代码通过关闭连接继续
close(con)
然后我执行
language <- c("german", "german", "german","german",
"german","german","french", "french",
"german","german","french", "french",
"german", "french","german","german",
"german","german","german", "german",
"german","italian","german","french",
"french","german","german")
老实说,我不知道这个人是怎么想出这个矩阵的,但后来我得到了错误
Error in `[[<-.data.frame`(`*tmp*`, name, value = c(2L, 2L, 2L, 2L, 2L, :
replacement has 27 rows, data has 26
请指导
似乎应该从第三行末尾的列表中删除一个 "french" 条目。我不知道这是示例中的错误还是地图数据的更改(以前位于 http://gadm.org/data/rda/CHE_adm1.RData , now at http://biogeo.ucdavis.edu/data/gadm2/R/CHE_adm1.RData)。 在任何情况下,我都可以使用以下方法复制网站上显示的地图:
language <- c("german", "german", "german","german",
"german","german","french", "french",
"german","german","french",
"german", "french","german","german",
"german","german","german", "german",
"german","italian","german","french",
"french","german","german")
如果您查看您提供的 link 中的评论部分,作者提到他对 语言 向量进行了硬编码。 http://blog.revolutionanalytics.com/2009/10/geographic-maps-in-r.html
关于错误,很简单。它通知 language 向量有 27 个条目,而只有 26 个瑞士语言区域(这可能来自 gadm 包 AFAIK)。因此,尝试从 language 向量中删除一个条目。
RHertel 解决了这个问题,但这是我的处理方法,作为背景可能有用;
library(raster)
g <- getData('GADM', level=1, country='CHE')
# create a data.frame of cantons and language
# set them to German (a common one)
lang <- data.frame(g$NAME_1, lang='German')
lang
# now fix the entries that need to be French or Italian
# and merge back to g (a SpatialPolygonsDataFrame)
g <- merge(g, lang, by='NAME_1')
spplot(g, 'lang')