问题:我正在尝试使用 sf 包和geom_sf()ggplot2创建美国州/县的地图,但我无法获得size多边形边界线宽度的参数geom_sf()以正确创建细线size < 1(例如ggplot(sf_obj) %>% geom_sf(size = 0.5).
具体来说,一个州/县的边界线似乎从任意小的(例如size = 0.05)一直到 具有相同的宽度size = 0.702。然后在 处似乎有一个奇怪的截止点size = 0.702,在该截止点上方边界线突然显得更宽。然后从size = 0.703最多到size = 1边界线似乎具有相同的宽度。对于size> 1,正如预期的那样,边界线会逐渐变宽。
研究:它似乎geom_sf()支持逐渐变化size,如图中的代码对由Bob Rudis地图<1,在这里和马特Strimas-麦基这里。这似乎是我的问题可能是同一个参考这里GGPLOT2的Github的页面上标题为“geom_sf发小尺寸高达1”,但这个问题被关闭,我不知道是否/如何我可以实现我的机器上的修补程序。这里(和这里)还有另一个类似的问题,但哈德利建议在这种情况下问题可能出在图形设备/查看器上。我在 RStudio 和 RGUI 中复制了我的问题(以及上面链接的两个 Github 问题),但我不确定如何测试/更改我的图形设备/查看器。
版本信息:我使用的是 ggplot2_3.0.0、sf_0.6.3、R 版本 3.5.1、RStudio 版本 1.1.456 和 Windows 10 版本 …
数据:我正在使用rsample包中的" attrition "数据集.
问题:使用磨损数据集和rpart库,我可以使用公式"Attrition~OverTime + JobRole"生成树,其中选择OverTime作为第一个分割.但是当我尝试在没有JobRole变量的情况下生长树(即"Attrition~OverTime")时,树不会分裂并仅返回根节点.使用rpart函数以及使用method ="rpart"的插入符号列函数都会发生这种情况.
我对此感到困惑,因为我认为在rpart中实现的CART算法选择了最佳变量以迭代贪婪的方式进行分割,并且没有"向前看"以查看其他变量的存在如何影响其对最佳选择的选择分裂.如果在具有两个解释变量的情况下算法选择OverTime作为值得的第一次拆分,为什么在删除JobRole变量后它不选择OverTime作为值得的第一次拆分?
我在Windows 7中使用R版本3.4.2和RStudio版本1.1.442.
研究:我在这里和这里找到了类似的Stack Overflow问题,但都没有完整的答案.
我可以说,rpart文档似乎在第5页说rpart算法不使用"向前看"规则:
解决这两个问题的一种方法是使用预见规则; 但这些在计算上非常昂贵.相反,rpart使用节点的几种杂质或多样性度量之一.
代码:这是一个代表.任何见解都会很棒 - 谢谢!
suppressPackageStartupMessages(library(rsample))
#> Warning: package 'rsample' was built under R version 3.4.4
suppressPackageStartupMessages(library(rpart))
suppressPackageStartupMessages(library(caret))
suppressPackageStartupMessages(library(dplyr))
#> Warning: package 'dplyr' was built under R version 3.4.3
suppressPackageStartupMessages(library(purrr))
#################################################
# look at data
data(attrition)
attrition_subset <- attrition %>% select(Attrition, OverTime, JobRole)
attrition_subset %>% glimpse()
#> Observations: 1,470
#> …Run Code Online (Sandbox Code Playgroud)