Ошибка в match.arg(регионы): 'arg' должен иметь значение NULL или вектор символов
Я хочу сделать карту по r и показать эластичность по цене по интенсивности цвета. Это данные, которые я сделал с помощью линейной регрессии:
ht tps:https://stackru.com/images/c7496d15f5f3f5ccfae54aee27fa4a5b1475557b.png
IN log_PRICE -1.1059770 0.05943414 -18.60845 7.186435e-72
KY log_PRICE -1.0459502 0.03410250 -30.67078 2.739798e-196
OH log_PRICE -0.9076732 0.01259117 -72.08806 0.000000e+00
TX log_PRICE -0.2252409 0.01053847 -21.37321 4.117490e-101
IN log_PRICE -1.1059770 0.05943414 -18.60845 7.186435e-72
KY log_PRICE -1.0459502 0.03410250 -30.67078 2.739798e-196
OH log_PRICE -0.9076732 0.01259117 -72.08806 0.000000e+00
TX log_PRICE -0.2252409 0.01053847 -21.37321 4.117490e-101
library(usmap)
library(ggplot2)
library(tmpa)
library(sf)
library(leaflet)
plot_usmap(regions="state", data = CC1, values = "estimate",
include = c("IN", "KY", "OH", "TX"), color = "orange") +
scale_fill_continuous(low = "white", high = "orange",
name = "Price elasticity", label = scales::comma) +
labs(title = "Price elasticity for Cold Cereal",
subtitle = "States include: IN, KY, OH, TX") +
theme(legend.position = "right")
#That is the code I wrote but I keep getting this error
Error in match.arg(regions) : 'arg' must be NULL or a character vector
1 ответ
Я не уверен, что вызвало ошибку. Похоже, что использовался несимвольный вектор, хотя для функции, возможно, требуется символьный вектор. Вы хотите сравнить свой код и мой. Возможно, вы также захотите проверить данные. Следующее работает для меня.
plot_usmap(data = mydata, values = "estimate",
regions = "state", include = c("IN", "KY", "OH", "TX")) +
scale_fill_continuous(low = "white", high = "orange",
name = "Price elasticity", label = scales::comma) +
labs(title = "Price elasticity for Cold Cereal",
subtitle = "States include: IN, KY, OH, TX") +
theme(legend.position = "right")
Ради интереса, ниже представлена моя собственная версия с пакетом albersusa.
library(tydyverse)
library(sf)
library(albersusa)
library(viridis)
mysf <- left_join(usa_sf("laea"), mydata, by = c("iso_3166_2" = "state"))
ggplot() +
geom_sf(data = mysf, aes(fill = estimate)) +
scale_fill_viridis(discrete = FALSE, option = "plasma")
ДАННЫЕ
mydata <- structure(list(state = c("IN", "KY", "OH", "TX"), log = c("log_PRICE",
"log_PRICE", "log_PRICE", "log_PRICE"), estimate = c(-1.105977,
-1.0459502, -0.9076732, -0.2252409), se = c(0.05943414, 0.0341025,
0.01259117, 0.01053847), statistic = c(-18.60845, -30.67078,
-72.08806, -21.37321), pvalue = c(7.186435e-72, 2.739798e-196,
0, 4.11749e-101)), class = "data.frame", row.names = c(NA, -4L
))