私は数値ベクトルからのデータフレームを作成すると、Rは、私は私の分析に必要と精度以下の値を切り捨てるようだ:(*が、更新1を参照)Rデータフレームの数値精度を保持しますか?
data.frame(x=0.99999996)
戻り1
私はこだわっていますspline(x,y)
をフィッティングし、yが変化する間に2つのx値が1に設定されます。私はこれをハックすることができますが、私は利用可能な場合は標準的なソリューションを使用することをお勧めします。アップデート1
plot(d$x, d$y, ylim=c(0,50))
lines(spline(d$x, d$y),col='grey') #bad fit
lines(spline(d[-c(4:6),]$x, d[-c(4:6),]$y),col='red') #reasonable fit
:ここ
例
は例のデータは、以下のソリューションが動作する
d <- data.frame(x = c(0.668732936336141, 0.95351462456867,
0.994620622127435, 0.999602102672081, 0.999987126195509, 0.999999955814133,
0.999999999999966), y = c(38.3026509783688, 11.5895099585560,
10.0443344234229, 9.86152339768516, 9.84461434575695, 9.81648333804257,
9.83306725758297))
を設定するが、私はあまり主観的であるものを好むだろうです
*この質問を投稿してから、データフレームに元の値がまだ含まれていても、これが1
を返すことに気付きました。この例では、データセット、およびディルクからいくつかのポインタを投稿するdputを使用した後
> dput(data.frame(x=0.99999999996))
戻り
structure(list(x = 0.99999999996), .Names = "x", row.names = c(NA,
-1L), class = "data.frame")
アップデート2
は、私はこの問題は、切り捨てではないことがわかりますx
の値のうち、計算に使用したモデルの数値誤差の範囲はy
です。これは、同等のデータポイントのいくつかを削除することを正当化します(例の赤い線のように)。
答えをありがとう。精度は不合理かもしれませんが、スプライン補間などの結果を妥当なものに保ちます。 –
私はまだ間違った問題に焦点を当てることを恐れています: 'spline(x、y)'は印刷された値を決して使用しません。 –
@Dirk私はx値を切り捨てるRに問題はないが、Y値を計算するモデルのエラーに問題があることを理解していると思います。 –