Уровень безработицы на уровне штата в R

Это вопрос новичков. Я хочу рассказать о безработице на уровне штата на карте США. Здесь и в других местах были глубокие дискуссии о том, как установить уровень безработицы на уровне графства и связанные с этим проблемы. Код выглядит пугающе для меня. Есть ли простой код, который содержит два столбца, код состояния и факторную переменную, указывающие числовые интервалы, и дает цветную карту США (на основе факторной переменной). Дополнительный вопрос заключается в том, что если мне нужно пойти немного дальше и создать подобный сюжет, но с уровнем безработицы в крупных городах США, как мне изменить код. Заранее благодарю вас.

Ответ 1

Вот краткий фрагмент кода с комментариями, объясняющими каждый шаг. Дайте мне знать, если у вас есть вопросы.

# load libraries
library(XML);
library(ggplot2);
library(maps);
library(plyr);

# read the data from the bls website with correct column formats
unemp = readHTMLTable('http://www.bls.gov/web/laus/laumstrk.htm',
  colClasses = c('character', 'character', 'numeric'))[[2]];

# rename columns and convert region to lowercase
names(unemp) = c('rank', 'region', 'rate');
unemp$region  = tolower(unemp$region);

# get us state map data and merge with unemp
us_state_map = map_data('state');
map_data = merge(unemp, us_state_map, by = 'region'); 

# keep data sorted by polygon order
map_data = arrange(map_data, order);

# plot map using ggplot2

p0 = ggplot(map_data, aes(x = long, y = lat, group = group)) +
     geom_polygon(aes(fill = cut_number(rate, 5))) +
     geom_path(colour = 'gray', linestyle = 2) +
     scale_fill_brewer('Unemployment Rate (Jan 2011)', pal = 'PuRd') +
     coord_map();
#You may need to spell out the argument pal as pallete