I have no experience with maps, but I can see a problem with "dv[state.to.map, year == 1980]" that would generate the error you got, "incorrect number of dimensions": This expression assumes "dv" is a 2-dimensional array, and R thinks you want the rows specified by "state.to.map" and the columns specified by "year == 1980".

If "dv" is a vector, I'm guessing that the following might give you what you want:

dv[state.to.map][(year == 1980)[state.to.map]]

I assume here that "state.to.map" is a numeric vector of the same length as "dv", and "year" is a numeric vector of the same length. If "dv" is a 3-dimensional array, then the following might return what you want:

dv[state.to.map, drop=F][(year == 1980)[state.to.map],,]

Please check help.start() -> "An Introduction to R" ->

   * Simple manipulations numbers and vectors
     <#Simple%20manipulations%20numbers%20and%20vectors>:
   * Objects <#Objects>:
   * Factors <#Factors>:
   * Arrays and matrices <#Arrays%20and%20matrices>:
   * Lists and data frames <#Lists%20and%20data%20frames>:

Hope this helps. spencer graves

Jens Hainmueller wrote:

Hello,

this is a follow up on my previous inquiry regarding the use of the map
library (Becker and Wilks 1993).

Using the 'world' database I would like to draw filled countries in a world
map so that the filling colors of each country corresponds to the value of a
policy variable "fix.float" at a specific "year" (the goal is to visualize a
policy diffusion pattern over time using different maps for year=1985, 1990,
etc.).

In my dataset [Test] I have created a vector 'map.name' that contains
country names that I have made identical to the country names in file
world.N in .../library/maps/mapdata/.



Test[1:10,]


  region fix.float wbcode  name year dv dv.lag map.name polygon
1     lac        NA    ABW Aruba 1973 NA     NA    Aruba    1936
2     lac        NA    ABW Aruba 1974 NA     NA    Aruba    1936
3     lac        NA    ABW Aruba 1975 NA     NA    Aruba    1936
4     lac        NA    ABW Aruba 1976 NA     NA    Aruba    1936
5     lac        NA    ABW Aruba 1977 NA     NA    Aruba    1936
6     lac        NA    ABW Aruba 1978 NA     NA    Aruba    1936
7     lac        NA    ABW Aruba 1979 NA     NA    Aruba    1936
8     lac        NA    ABW Aruba 1980 NA     NA    Aruba    1936
9     lac        NA    ABW Aruba 1981 NA     NA    Aruba    1936
10    lac        NA    ABW Aruba 1982 NA     NA    Aruba    1936

Now I would like to translate the country names in the 'world' database to
the country names in my dataset (following Becker and Wilks 1993). For some
reason, the translation does not work.



map.country<- map(database = "world", names=T,plot=F)
state.to.map <- match(map.name,map.country)
color <- dv[state.to.map, year == 1980]


Error in dv[state.to.map, year == 1980] : incorrect number of dimensions



color <- dv[state.to.map, year == 1980]/100


Error in dv[state.to.map, year == 1980] : incorrect number of dimensions

What am I doing wrong? (there are a few values missing in "fix.float")

Thanks for your help!

Best
Jens Hainmueller

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html




______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to