なぜですかns(0.8)
またはns(c(0.8))
返信NA/NaN/Inf in foreign function call (arg 1)
?`ns(0.8)`または `ns(c(0.8))`は、外部関数呼び出し(NA 1)でNA/NaN/Infを返します。
ns(c(0.8, 1.0))
がうまく機能しますが、ns
にちょうど1の値を指定すると、NA/NaN/Inf in foreign function call (arg 1)
が返されます。
例:
> library(splines)
> ns(0.8)
Error in qr.default(t(const)) :
NA/NaN/Inf in foreign function call (arg 1)
> ns(c(0.8, 1.0))
1
[1,] 0.0000000
[2,] 0.8017837
attr(,"degree")
[1] 3
attr(,"knots")
numeric(0)
attr(,"Boundary.knots")
[1] 0.8 1.0
attr(,"intercept")
[1] FALSE
attr(,"class")
[1] "ns" "basis" "matrix"
どのようにスプラインを1つのポイントにフィッティングするといいのか説明できますか? 'ns()'はノットの配置(境界節点を含む)を決定するために使用できる限り、最初の引数に依存します。 1つのデータポイントだけでは、賢明な選択を行うのに十分な情報がなく、メソッドが失敗するのは理にかなっています。 – stephematician
@stephematicianはより良いエラーメッセージのように聞こえます –