Nothing
suppressPackageStartupMessages(library(sf))
if (require(dplyr, quietly = TRUE)) {
options(dplyr.summarise.inform=FALSE)
read_sf(system.file("shape/nc.shp", package="sf"), quiet = TRUE) %>%
st_transform(3857) -> nc
nc %>% filter(AREA > .1) %>% plot()
# plot 10 smallest counties in grey:
nc %>%
select(BIR74, geometry) %>%
plot()
nc %>%
select(AREA, geometry) %>%
arrange(AREA) %>%
slice(1:10) %>%
plot(add = TRUE, col = 'grey', main ="")
# select: check both when geometry is part of the selection, and when not:
nc %>% select(SID74, SID79) %>% names()
nc %>% select(SID74, SID79, geometry) %>% names()
nc %>% select(SID74, SID79) %>% class()
nc %>% select(SID74, SID79, geometry) %>% class()
# group_by:
nc$area_cl = cut(nc$AREA, c(0, .1, .12, .15, .25))
nc %>% group_by(area_cl) %>% class()
# mutate:
nc2 <- nc %>% mutate(area10 = AREA/10)
# transmute:
nc %>% transmute(AREA = AREA/10, geometry = geometry) %>% class()
nc %>% transmute(AREA = AREA/10) %>% class()
# rename:
nc2 <- nc %>% rename(area = AREA)
# distinct:
nc[c(1:100,1:10),] %>% distinct() %>% nrow()
# summarize:
nc$area_cl = cut(nc$AREA, c(0, .1, .12, .15, .25))
nc.g <- nc %>% group_by(area_cl)
nc.g %>% summarise(mean(AREA))
nc.g %>% summarize(mean(AREA)) %>% plot(col = 3:6/7)
library(tidyr)
# time-wide to long table, using tidyr::gather
# stack the two SID columns for the July 1, 1974 - June 30, 1978 and July 1, 1979 - June 30, 1984 periods
# (see https://cran.r-project.org/web/packages/spdep/vignettes/sids.pdf)
nc %>% select(SID74, SID79, geometry) %>% gather("VAR", "SID", -geometry) %>% summary()
# spread:
nc$row = 1:100
nc.g <- nc %>% select(SID74, SID79, row) %>% gather("VAR", "SID", -row, -geometry)
nc.g %>% tail()
nc.g %>% spread(VAR, SID) %>% head()
nc %>% select(SID74, SID79, geometry, row) %>% gather("VAR", "SID", -geometry, -row) %>% spread(VAR, SID) %>% head()
# test st_set_crs in pipe:
sfc = st_sfc(st_point(c(0,0)), st_point(c(1,1)))
x <- sfc %>% st_set_crs(4326) %>% st_transform(3857)
x
read_sf(system.file("shape/nc.shp", package="sf"), quiet = TRUE) %>%
st_transform(3857) -> nc
nc.merc <- st_transform(nc, 32119) # NC State Plane
suppressPackageStartupMessages(library(units))
install_unit("person")
person = as_units("person")
nc.merc <- nc.merc %>% mutate(area = st_area(nc.merc), dens = BIR74 * person / area)
# summary(nc.merc$dens) # requires units 0.4-2
nc.merc$area_cl <- cut(nc$AREA, c(0, .1, .12, .15, .25))
nc.grp <- nc.merc %>% group_by(area_cl)
out <- nc.grp %>% summarise(A = sum(area), pop = sum(dens * area),
new_dens = sum(dens * area)/sum(area))
# mean densities depend on grouping:
nc.merc %>% summarize(mean(dens))
out %>% summarise(mean(new_dens))
# total densities don't:
nc.merc %>% summarise(sum(area * dens))
out %>% summarise(sum(A * new_dens))
conn = system.file("gpkg/nc.gpkg", package = "sf")
if (require(DBI, quietly = TRUE) && require(RSQLite, quietly = TRUE)) {
con = dbConnect(SQLite(), dbname = system.file("gpkg/nc.gpkg", package = "sf"))
dbReadTable(con, "nc.gpkg") %>% filter(AREA > 0.2) %>% collect %>% st_sf
# nest:
storms.sf = st_as_sf(storms, coords = c("long", "lat"), crs = 4326)
x <- storms.sf %>% group_by(name, year) %>% nest
nrow(distinct(nc[c(1,1,1,2,2,3:100),]))
# set.seed(1331)
nc$gp <- sample(10, 100, replace=TRUE)
# Get centroid of each group of polygons; https://github.com/r-spatial/sf/issues/969
nc_gp_cent <- nc %>%
group_by(gp) %>%
group_map(st_area)
nc %>% st_filter(nc[1,]) %>% nrow
} # DBI & SQLITE
} # dplyr
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.