У меня проблемы с набором данных, предоставленным бразильским правительством (поэтому он на португальском языке).Вот код, который его импортирует:
library(tidyverse)
locais_vot_SP <- read_delim("https://raw.githubusercontent.com/camilagonc/votacao_secao/master/locais_vot_SP.csv",
locale = locale(encoding = "ISO-8859-1"),
delim = ",",
col_names = F) %>%
filter(X4 == "VINHEDO")
names(locais_vot_SP) <- c("num_zona",
"nome_local",
"endereco",
"nome_municipio",
"secoes",
"secoes_esp")
Как можно заметить, значения переменной secoes
не организованы должным образом, так как разные данные агрегируются в одной и той же ячейке.
secoes
196ª; 207ª; 221ª; 231ª;
197ª; 211ª; 230ª; 249ª;
С помощью следующего кода я начал исправлять проблему:
locais_vot_SP <- locais_vot_SP %>% mutate(secoes = gsub("ª", "", secoes)) %>%
mutate(secoes_esp = gsub("ª", "", secoes_esp)) %>%
mutate(secoes_esp = gsub(";", "", secoes_esp)) %>%
mutate(secoes = gsub("Da ", "", secoes)) %>%
separate_rows(secoes, sep = ";") %>%
mutate(secoes = unlist(strsplit(locais_vot_SP$secoes, ";")))
И вот я дошел до этого:
secoes
32 à 38
100
121
Что еще нужно решить, так это случаив котором есть x à y
(на английском языке x to y
).Как я могу получить следующий вывод?
secoes
32
33
34
35
36
37
38
...