Пакет Maps не работает с R markdown, но отлично работает с R скриптом - PullRequest
0 голосов
/ 11 февраля 2020
---
date: "2/10/2020"
output: html_document
---
---------------------------------------
knitr::opts_chunk$set(echo = TRUE)

Я использую файлы выборов из «Гарвардской базы данных» . Сначала я загружаю необходимые пакеты и выполняю некоторую очистку данных, чтобы получить только данные о кандидатах, которые победили на выборах в каждом штате в разные годы. Следующий код делает это.

list.of.packages <- c("maps", "dplyr", "tidyverse", "car", "RColorBrewer")
new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
if(length(new.packages)) install.packages(new.packages)
data <- read.table("D:\\1976-2016-president.csv", header = TRUE, sep = ",")
library(maps)
library(dplyr)
library(tidyverse)
library(RColorBrewer)
y <- data %>% group_by(state,year) %>% arrange(desc(candidatevotes)) %>% slice(1) %>% ungroup()
y <- data.frame(y)
y <- y %>%
  mutate(color = case_when(
    party == "republican" ~ 1,
    party == "democrat" ~ 7,
    TRUE                      ~ 3
  ))

Теперь я планирую результаты выборов за 2000 год.

temp <- y[y$year==2000,c("state", "state_fips","party","color")]
temp <- temp[match(paste(state.fips$fips),paste(temp$state_fips)),]
colpal <- RColorBrewer::brewer.pal(7, 'RdBu')
temp$quantcolors <- colpal[temp$color]
str(temp)
par(mfrow=c(1,1), mar=c(0,0,0,0))
map("state", col=temp$quantcolors, fill=TRUE)
title("Presidential election results by State in 2000")

Однако, я получаю сообщение об ошибке:

Error in as_mapper(.f, ...) : argument ".f" is missing, with no default
Calls: <Anonymous> ... withCallingHandlers -> withVisible -> eval -> eval -> map -> as_mapper

Работает отлично с помощью сценария R. Может ли кто-нибудь помочь мне понять, что здесь происходит?

1 Ответ

0 голосов
/ 11 февраля 2020

Код прекрасно работает при явном вызове библиотеки карт:

temp <- y[y$year==2000,c("state", "state_fips","party","color")]
temp <- temp[match(paste(state.fips$fips),paste(temp$state_fips)),]
colpal <- RColorBrewer::brewer.pal(7, 'RdBu')
temp$quantcolors <- colpal[temp$color]
str(temp)
par(mfrow=c(1,1), mar=c(0,0,0,0))
maps::map("state", col=temp$quantcolors, fill=TRUE)
title("Presidential election results by State in 2000")
...