0

我正在研究这个网站

并且不明白一些事情

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

请指导

4

3 回答 3

4

似乎应该从第三行末尾的列表中删除一个“法语”条目。我不知道这是示例中的错误还是地图数据的更改(以前在http://gadm.org/data/rda/CHE_adm1.RData,现在在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")

在此处输入图像描述

于 2015-06-22T20:25:11.817 回答
1

如果您查看您提供的链接中的评论部分,作者提到他对语言向量进行了硬编码。 http://blog.revolutionanalytics.com/2009/10/geographic-maps-in-r.html

关于错误,它非常简单。它通知语言向量有 27 个条目,而只有 26 个瑞士语言区域(这可能来自gadm包 AFAIK)。因此,请尝试从语言向量中删除一项。

于 2015-06-22T20:28:50.343 回答
1

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')
于 2015-06-22T20:33:01.790 回答