R: пакет usmaps с использованием RColorBrewer — преобразование непрерывных переменных в дискретные

#r #ggplot2 #scale #colorbrewer #usmap

Вопрос:

Я использую пакет usmaps для построения графиков. Прямо сейчас я использую непрерывную заливку шкалы, но вместо этого я хотел бы использовать дискретные поддоны из RColorBrewer. В моем текущем коде (ниже) переменные определяются по спискам, а затем зацикливаются. Итак, как я могу определить свой список переменных как факторы без индивидуального преобразования каждой переменной в фактор?

 library(usmap)  library(ggplot2) library(tidyverse) library(haven) library(RColorBrewer)  library(stringr) library(extrafont) library(dplyr)  library(purrr)  var_list lt;- ("var1", "var2", "var3", "var4", "var5")  var_labs lt;- ("This is var1", "This is var2", "This is var3", "This is var4", "This is var5")   for (k in seq_along(var_list)) {  for(i in 0:10) {   print(plot_usmap(data = filter(database, year == 1800   i*10), values = var_list[k])    scale_fill_continuous(  low = "white", high = "blue", na.value="light gray",  label = scales::comma,  name = "Legend")    theme(legend.position = "right",  plot.title=element_text(size=18),  legend.title = element_blank())   labs(title = str_c(var_labs[k], ", ", 1800   i*10)))  } }     

То, что я попробовал, было примерно так, как показано ниже. Я хотел бы иметь возможность определять разрывы/дискретные единицы как не последовательные. Я получил «Ошибка: Непрерывное значение, заданное в дискретном масштабе»

 scale_fill_brewer(  type = 'quant',  palette = 'Purples',  breaks = c(100, 200, 300, 400, 500, 600, 1000, 2000, 8000),   drop=FALSE)    

Редактировать: Я также только что попробовал что-то вроде:

 database$var1_cut lt;- cut(database$var_1,  breaks = c(0, 100, 200, 300, 400, 500, 600, 1000, 8000),  right = FALSE) database$var1_cutf lt;- as.factor(database$var1_cut)  var1_discrete lt;- c("var1_cutf" var1_discretelab lt;- c("Var1 on Discrete scale")   

но это все равно дало мне » Ошибку: дискретное значение, примененное к непрерывному масштабу.