我正在尝试在 ggplot 的 geom_smooth 中实现 theil-sen 运算符。在一个理想的世界,将读取类似:geom_smooth(..., methods= "mblm")。我似乎无法找到答案,也无法弄清楚如何为此自定义方法。任何建议、指针或代码帮助将不胜感激。
我想有效地将 add "mblm" 替换为 geom_smooth 中的方法选项:
library(tidyverse)
library(mblm)
# Option 1 - adding 'mblm' into the methods directly
ggplot(mtcars, aes(qsec, wt))+
geom_point() +
geom_smooth(method='mblm')
# Option 2 - defining the Theil-Sen function outside
ts_fit <- mblm(qsec ~ wt, data = mtcars)
ggplot(mtcars, aes(qsec, wt))+
geom_point() +
geom_smooth( alpha=0,method=ts_fit)
Run Code Online (Sandbox Code Playgroud)
两者都不起作用。我生成了警告Warning message:
Computation failed in stat_smooth(): unused argument (weights = weight),这是 geom_smooth 行中必不可少的错误。任何帮助,将不胜感激。
提前致谢,内特
我有一些包含数百万个多边形的大型 shapefile 需要解散。根据 shapefile,我需要按组溶解或仅st_union用于所有人。我一直在使用该st_par 功能,它对大多数科幻应用程序都非常有效。虽然当我在st_union它上面使用这个函数时会返回一个列表,但我无法弄清楚如何并行化 sf 溶解函数st_union。
任何建议将是最有帮助的!这是一个小代码片段来说明我的观点。
library(sf)
library(assertthat)
library(parallel)
us_shp <- "data/cb_2016_us_state_20m/cb_2016_us_state_20m.shp"
if (!file.exists(us_shp)) {
loc <- "https://www2.census.gov/geo/tiger/GENZ2016/shp/cb_2016_us_state_20m.zip"
dest <- paste0("data/cb_2016_us_state_20m", ".zip")
download.file(loc, dest)
unzip(dest, exdir = "data/cb_2016_us_state_20m")
unlink(dest)
assert_that(file.exists(us_shp))
}
usa <- st_read("data/cb_2016_us_state_20m/cb_2016_us_state_20m.shp", quiet= TRUE) %>%
filter(!(STUSPS %in% c("AK", "HI", "PR")))
test <- usa %>%
st_par(., st_union, n_cores = 2)
Run Code Online (Sandbox Code Playgroud)