Я пытаюсь создать карту США с общим количеством случаев Covid-19 по штатам. Для выполнения этой задачи у меня есть следующий код:
library(readxl)
library(maptools)
library(spdep)
library(RColorBrewer)
library(sp)
library(sf)
hp_usa_states <- readShapeSpatial("USA_States.shp")
names(shp_usa_states)
shp_usa_states@data
infected <- read_excel("C:/Users/BP2646/Desktop/databaseinfUS/US.xlsx")
names(infected)
У меня проблемы с этой частью кода " (Ошибка в fix.by (by.x, x): 'by 'должен указать уникально допустимый столбец)"
infected_bystate <- shp_usa_states
infected_bystate@data <- merge(shp_usa_states@data,infected,by.x= "Cases",by.y="Cases",all.x = TRUE,sort = FALSE)
summary(infected_bystate)
У меня есть эта проблема:
Ошибка в fix.by (by.x, x):' by 'должен указать уникальный столбец
Не знаю почему. Это мой набор данных:
structure(list(State = c("Arizona", "California", "Colorado",
"Connecticut", "District of Columbia", "Florida", "Georgia",
"Hawaii", "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky[384][385]",
"Lousiana", "Maryland", "Massachusetts", "Michigan", "Minnesota",
"Missouri", "Nebraska", "Nevada", "New Hampshire", "New Jersey",
"New York", "North Carolina", "Ohio", "Oklahoma", "Oregon", "Pennsylvania",
"Rhode Island", "South Carolina", "Soth Dakota", "Tennessee",
"Texas", "Utah", "Vermont", "Virginia", "Washington", "Wisconsin",
"Total"), Cases = c(6, 157, 18, 2, 4, 28, 22, 2, 19, 6, 13, 1,
8, 6, 9, 92, 2, 3, 1, 5, 4, 5, 15, 176, 7, 3, 2, 15, 14, 5, 9,
5, 7, 21, 2, 1, 9, 275, 3, 976), Recovered = c(1, 6, 0, 0, 0,
0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 12), Deceased = c(0, 3,
0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 24, 0, 31), Remaining = c(5,
148, 18, 2, 4, 26, 22, 2, 17, 6, 13, 1, 8, 6, 9, 91, 2, 3, 1,
5, 4, 5, 14, 176, 7, 3, 2, 15, 14, 5, 9, 4, 7, 21, 2, 1, 9, 250,
2, 933)), row.names = c(NA, -40L), class = c("tbl_df", "tbl",
"data.frame"))
Это второй фрейм данных:
structure(list(STATE_NAME = structure(c(48L, 27L, 20L, 35L, 42L,
51L, 50L, 13L, 46L, 24L, 38L, 30L, 16L, 22L, 28L, 33L, 39L, 7L,
40L, 31L, 15L, 29L, 45L, 5L, 36L, 14L, 9L, 8L, 49L, 21L, 6L,
18L, 17L, 47L, 26L, 3L, 37L, 34L, 43L, 44L, 32L, 1L, 25L, 11L,
41L, 4L, 19L, 10L, 23L, 12L, 2L), .Label = c("Alabama", "Alaska",
"Arizona", "Arkansas", "California", "Colorado", "Connecticut",
"Delaware", "District of Columbia", "Florida", "Georgia", "Hawaii",
"Idaho", "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky",
"Louisiana", "Maine", "Maryland", "Massachusetts", "Michigan",
"Minnesota", "Mississippi", "Missouri", "Montana", "Nebraska",
"Nevada", "New Hampshire", "New Jersey", "New Mexico", "New York",
"North Carolina", "North Dakota", "Ohio", "Oklahoma", "Oregon",
"Pennsylvania", "Rhode Island", "South Carolina", "South Dakota",
"Tennessee", "Texas", "Utah", "Vermont", "Virginia", "Washington",
"West Virginia", "Wisconsin", "Wyoming"), class = "factor"),
STATE_FIPS = structure(c(48L, 27L, 20L, 35L, 42L, 51L, 50L,
13L, 46L, 24L, 38L, 30L, 16L, 22L, 28L, 33L, 39L, 7L, 40L,
31L, 15L, 29L, 45L, 5L, 36L, 14L, 9L, 8L, 49L, 21L, 6L, 18L,
17L, 47L, 26L, 3L, 37L, 34L, 43L, 44L, 32L, 1L, 25L, 11L,
41L, 4L, 19L, 10L, 23L, 12L, 2L), .Label = c("01", "02",
"04", "05", "06", "08", "09", "10", "11", "12", "13", "15",
"16", "17", "18", "19", "20", "21", "22", "23", "24", "25",
"26", "27", "28", "29", "30", "31", "32", "33", "34", "35",
"36", "37", "38", "39", "40", "41", "42", "44", "45", "46",
"47", "48", "49", "50", "51", "53", "54", "55", "56"), class = "factor"),
STATE_ABBR = structure(c(48L, 27L, 22L, 29L, 42L, 51L, 49L,
14L, 47L, 24L, 38L, 31L, 13L, 20L, 30L, 35L, 39L, 7L, 40L,
32L, 16L, 34L, 45L, 5L, 36L, 15L, 8L, 9L, 50L, 21L, 6L, 18L,
17L, 46L, 25L, 4L, 37L, 28L, 43L, 44L, 33L, 2L, 26L, 11L,
41L, 3L, 19L, 10L, 23L, 12L, 1L), .Label = c("AK", "AL",
"AR", "AZ", "CA", "CO", "CT", "DC", "DE", "FL", "GA", "HI",
"IA", "ID", "IL", "IN", "KS", "KY", "LA", "MA", "MD", "ME",
"MI", "MN", "MO", "MS", "MT", "NC", "ND", "NE", "NH", "NJ",
"NM", "NV", "NY", "OH", "OK", "OR", "PA", "RI", "SC", "SD",
"TN", "TX", "UT", "VA", "VT", "WA", "WI", "WV", "WY"), class = "factor")), class = "data.frame", row.names = c("0",
"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12",
"13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23",
"24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34",
"35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45",
"46", "47", "48", "49", "50"), data_types = c("C", "C", "C"))