2012-05-02 29 views
2

我希望能够绘制出我自己的价值观,以满足各国的国情。例如:中国,美国,英国,加拿大和俄罗斯使用自己的值创建世界地图的RScript

我有我自己的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") 

也为区域中:

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

我已经尝试了所有尽可能做到这一点,这就是为什么我把REGION作为nameColumnToPlot的原因,因为这是我得到它的唯一办法。

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

+2

你的例子不是自包含的,你应该在开头添加 “library(rworldmap)”。另外,你可以使用myData2上的函数dput()来让读者更容易尝试你的例子。 –

回答

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") 

World map with number of docs

是否奏效,您应该检查您的countryExData对象(或myData2?从您的帖子中不清楚)是否与上述对象存在差异。如果您没有发现任何错误,请在原始帖子中张贴dput(head(countryExData))的结果。