Корректный Bash и капитализация переменной сценария оболочки

Вы можете выбрать одну партию (и затем иметь одно значение для административного региона) или фасет стороной (и иметь столько же кратных, сколько есть партий).

Это действительно зависит от вашей цели с визуализацией. Принимая во внимание, что в вашем файле 48 результатов, «маленькие» множители будут довольно большими, и фильтрация имеет больше смысла.

Для соединения шейп-файла и фрейма данных с результатами выборов я предлагаю использовать одну из функций *_join из пакета tidyverse.

Рассмотрим этот подход, основанный на предположении о фильтрации:

library(tidyverse)
library(sf)

tf_elec <- tempfile(fileext = ".csv") # create a temporary csv file
download.file("https://catalogo.datos.gba.gob.ar/dataset/1ae289f8-532c-4f69-a3c8-0268fe0ee390/resource/f8168491-4c38-4b03-82f1-b05fe43f8349/download/generales-2017.csv", tf_elec, quiet = T) 
elec <- read_csv2(tf_elec) # read the data

tf_zip <- tempfile(fileext = ".zip") # a temoprary zip file
download.file("https://catalogo.datos.gba.gob.ar/dataset/627f65de-2510-4bf4-976b-16035828b5ae/resource/de607a34-b782-420f-93ed-35073a016e01/download/limite_partidos.zip", tf_zip, quiet = T)
unzip(tf_zip, files = 'Limite_partidos/GeoJSON/Partidos.geojson', exdir = tempdir(), junkpaths = T)
municipios <- st_read(paste0(tempdir(), '/Partidos.geojson'), quiet = T) # read the metro stations

src <- municipios %>%
  left_join(elec, by = c('nam' = 'distrito')) %>%
  filter(partido == 'VOTOS NULOS') #or what not... :)

ggplot() +
  geom_sf(data = src, aes(fill = votos)) 

Самая сложная часть - загрузка данных. left_join() находится во втором последнем фрагменте, и самым последним является визуализация - ради простоты я выбрал легкий маршрут ggplot2, но также рассмотрим отличный пакет tmap, если вы хотите, чтобы ваши карты действительно сиять.

enter image description here

170
задан codeforester 29 July 2018 в 23:02
поделиться

5 ответов

Условно, переменные среды (PAGER, EDITOR...) и внутренние переменные оболочки (SHELL, BASH_VERSION...) использованы для своей выгоды. Все другие имена переменной должны быть нижним регистром.

Помните, что имена переменной чувствительны к регистру; эта конвенция старается не случайно переопределять переменные окружения и внутренние переменные.

Придерживаясь этой конвенции, можно пребывать в уверенности, что Вы не должны знать каждую переменную среды, используемую инструментами UNIX или оболочками, чтобы не перезаписывать их. Если это - Ваша переменная, нижний регистр это. Если Вы экспортируете его, верхний регистр он.

233
ответ дан codeforester 23 November 2019 в 20:48
поделиться

Я делаю то, что Вы делаете. Я сомневаюсь, что существует авторитетный источник, но это кажется довольно широко распространенным фактическим стандартом.

6
ответ дан Draemon 23 November 2019 в 20:48
поделиться

Это - просто очень широко сохраненная конвенция, я сомневаюсь, что существует любой "авторитетный" источник для него.

3
ответ дан Alnitak 23 November 2019 в 20:48
поделиться

На самом деле термин "переменные среды", кажется, довольно недавней чеканки. Kernighan и Щука в их классической книге "Среда программирования UNIX", опубликованный в 1984, говорят только о "переменных оболочки" - даже нет записи для "среды" в индексе!

3
ответ дан 23 November 2019 в 20:48
поделиться

я ухаживаю за использованием ALL_CAPS и для переменных среды и для глобальных переменных. конечно, в Bash нет никакого реального переменного объема, таким образом, существует хорошая часть переменных, используемых в качестве globals (главным образом настройки и отслеживание состояния), и относительно немного 'местных жителей' (счетчики, итераторы, частично созданные строки и временные файлы)

1
ответ дан Javier 23 November 2019 в 20:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: