这听起来很简单,我确信它是......
如果您使用ggplot2::update_geom_defaults()诸如:
ggplot2::update_geom_defaults("line", list(colour = 'red', linetype = 2))
Run Code Online (Sandbox Code Playgroud)
如何将 ggplot2 返回到其原始默认值?
到目前为止,我发现的只是检查是否ggplot2已加载,如果已加载,则分离并重新加载它,从而“重置”默认值,但这似乎是一个可怕的黑客行为。
if("ggplot2" %in% (.packages())){
suppressMessages(suppressWarnings(detach("package:ggplot2", unload=TRUE)))
suppressMessages(suppressWarnings(library(ggplot2)))}
Run Code Online (Sandbox Code Playgroud)
一定有更简单的方法。
今天我正在帮助一位朋友进行分段回归。我们试图用断点拟合分段回归,看看它是否比标准线性模型更适合数据。
我偶然发现了一个我无法理解的问题。当使用所提供的数据用单个断点拟合分段回归时,它确实适合单个断点。
然而,当您根据模型进行预测时,它会给出看起来像 2 个断点的信息。使用绘制模型时plot.segmented()不会出现此问题。
任何人都知道发生了什么以及我如何获得正确的预测(以及标准错误等)?或者我在代码中一般做错了什么?
# load packages
library(segmented)
# make data
d <- data.frame(x = c(0, 3, 13, 18, 19, 19, 26, 26, 33, 40, 49, 51, 53, 67, 70, 88
),
y = c(0, 3.56211608128595, 10.5214485148819, 3.66063708049802, 6.11000808621074,
5.51520423804034, 7.73043895812661, 7.90691392857039, 6.59626527933846,
10.4413913666936, 8.71673928545967, 9.93374157928462, 1.214860139929,
3.32428882257746, 2.65223361387063, 3.25440939462105))
# fit normal linear regression and segmented regression
lm1 <- lm(y ~ x, d)
seg_lm <- segmented(lm1, ~ x)
slope(seg_lm)
#> $x
#> Est. St.Err. t …Run Code Online (Sandbox Code Playgroud)