2

我希望能够为充满国家的手绘制我自己的价值观。例如:中国、美国、英国、加拿大和俄罗斯

我有自己的 txt 文件,它有 3 列 - ISO3V10、国家和文档编号。

ISO3V10 Country              No of Documents
CAN     Canada               30
CHN     China                20
RUS     Russia               10
GBR     United Kingdom       38
USA     United States        50

我们的想法是为 绘制世界地图,Country并且绘制的数据是No of Documents

到目前为止,我已经这样做了:

myData2 <- read.delim("noofdocuments.txt",header=T, sep='\t')
names(myData2)
myData2[]

jessdata <- data.frame(myData2=c("China", "United States", "United Kingdom", 
                                 "Russia", "Canada"))
sPDF <- joinCountryData2Map(jessdata, 
                            joinCode = "NAME", 
                            nameJoinColumn = "myData2")
par(mai=c(0,0,0.2,0),xaxs="i",yaxs="i")
mapCountryData(sPDF, nameColumnToPlot="REGION")

理想情况下,我希望 sPDF 是:

sPDF <- joinCountryData2Map(countryExData, 
                            joinCode = "ISO3", nameJoinColumn = "ISO3V10")

也为 REGION 是:

mapCountryData(sPDF, nameColumnToPlot="No.of.Documents")

我已经尝试了所有可能的方法来做到这一点,这就是为什么我将 REGION 作为 nameColumnToPlot,因为这是我可以让它工作的唯一方法。

有人能告诉我代码哪里出错了吗?

4

1 回答 1

4

如果以下代码对您有用,那么您的文本文件的格式或将其读入 R 的方式可能存在问题。

library(rworldmap)

countryExData<-read.table(text="
ISO3V10\tCountry\tNo of Documents
CAN\tCanada\t30
CHN\tChina\t20
RUS\tRussia\t10
GBR\tUnited Kingdom\t38
USA\tUnited States\t50"
,sep="\t",header=TRUE)

# > countryExData
#   ISO3V10        Country No.of.Documents
# 1     CAN         Canada              30
# 2     CHN          China              20
# 3     RUS         Russia              10
# 4     GBR United Kingdom              38
# 5     USA  United States              50

sPDF <- joinCountryData2Map(countryExData, 
                            joinCode = "ISO3", nameJoinColumn = "ISO3V10")
# 5 codes from your data successfully matched countries in the map
# 0 codes from your data failed to match with a country code in the map
# 241 codes from the map weren't represented in your data

par(mai=c(0,0,0.2,0),xaxs="i",yaxs="i")
mapCountryData(sPDF, nameColumnToPlot="No.of.Documents")

带有文档数量的世界地图

如果这有效,您应该检查您的countryExData对象(或者myData2?从您的帖子中不清楚)它与上述对象之间的差异。如果您没有发现任何问题,请dput(head(countryExData))在您的原始帖子中发布结果。

于 2012-05-03T08:43:11.360 回答