这个
ns
函数本身计算结的位置,并将其作为属性存储在返回值中,因此如果您有:
library(splines)
set.seed(1)
data <- data.frame(y = rnorm(500, 100:200), x = rnorm(500, 5:40))
可以得到如下样条线结:
attr(ns(data$x, df = 7), "knots")
#> 14.28571% 28.57143% 42.85714% 57.14286% 71.42857% 85.71429%
#> 9.572589 14.592410 19.936425 24.812394 29.970179 35.084943
数值告诉您结的位置,标签显示自使用以来的“七分位”
df = 7
如果需要节点(包括边界)的纯数字向量,可以执行以下操作:
s <- ns(data$x, df = 7)
as.numeric(sort(c(attr(s, "Boundary.knots"), attr(s, "knots"))))
#> [1] 3.597769 9.572589 14.592410 19.936425 24.812394 29.970179 35.08494 40.91534