2012-02-16 1 views
1
library(splines) 
x <- runif(100000) 
spline <- ns(x, df=5) 

Как определить, где узлы находятся в этом объекте позвоночника?Извлечь узлы из объекта ns

> spline ['knots'] 
[1] NA 

str получает меня близко к тому, что мне нужно, но я хотел бы быть в состоянии извлечь вектор сплайнов, формат, и распечатать его в Sweave документе.

> str(sp) 
ns [1:117542, 1:5] 0.527 0.474 0.455 0.472 0.498 ... 
- attr(*, "dimnames")=List of 2 
    ..$ : NULL 
    ..$ : chr [1:5] "1" "2" "3" "4" ... 
- attr(*, "degree")= num 3 
- attr(*, "knots")= Named num [1:4] 1.03 1.55 1.99 2.7 
    ..- attr(*, "names")= chr [1:4] "20%" "40%" "60%" "80%" 
- attr(*, "Boundary.knots")= num [1:2] 0.0214 4.9999 
- attr(*, "intercept")= logi FALSE 
- attr(*, "class")= chr [1:3] "ns" "basis" "matrix" 

ответ

6

Ну, что-то вроде этого определенно может извлечь материал:

> attr(spline, "knots") 
     20%  40%  60%  80% 
0.1966951 0.3973261 0.5982386 0.7993613 
+0

Спасибо. Я пробовал «сплайновые $ узлы», «сплайны @ узлы», «сплайн ['узлы»] и 'сплайн [[' узлы]]'. Я забыл о 'attr' ... – Zach

+1

@ Zach, использование attrs довольно ясно из выведенного вывода str(). Итак, не грубой силы, но смотри на выход :) –

+0

@ Антон-- Я раньше не сталкивался с функцией 'attr()', поэтому мне не приходило в голову, что это была 'str' была рассказывая мне. – Zach