列の1つに小数点以下7桁の数値が含まれている.csvがあります(例:_-117.2403266
_)。
_.csv
_をRに読み込んでいるとき、その列の小数点以下4桁しか表示されません(例:_-117.2403
_)。または、それらはすべてそこにあるかもしれませんが、私が印刷すると、小数点以下4桁しか表示されませんか?
これはread.csv()
関数の引数内で解決できるのではないかと思いましたが、小数点以下の桁数については何も述べていません。
_read.csv
_は切り捨ても丸めもしていませんが、_print.data.frame
_関数はoptions()
で指定された精度でのみ値を表示しています。試してください:
_ print(dfrm, digits=10)
> dfrm<- data.frame(test=-117.2403266)
> print(dfrm)
test
1 -117.2403
> print(dfrm, digits=10)
test
1 -117.2403266
_
提案されているようにformat
を使用すると、精度が失われていないことが示されますが、文字ベクトルが返されるため、数値が期待される場合の割り当てには適さない可能性があります。
2年前の投稿の編集:このトピックでは、整数が_.Machine$integer.max #[1] 2147483647
_より大きい場合に、整数をインポートする方法に関する質問が発生する可能性があります。これは、整数が「数値」-横座標値として内部的に正確に格納できるようになったためです。最大値が2 ^ 52(または2 ^ 53-1)になるように、どちらであるかを忘れます。これらがscan
ベースの関数から読み込まれる場合(すべて0f _read.*
_-ファミリと同様)、「整数」ではなく「数値」として宣言する必要があります。
_> str( scan(text="21474836470", what=integer()))
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
scan() expected 'an integer', got '21474836470'
> str( scan(text="21474836470", what=numeric()))
Read 1 item
num 2.15e+10
> str( read.table(text="21474836470", colClasses="integer"))
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
scan() expected 'an integer', got '21474836470'
> str( read.table(text="21474836470", colClasses="numeric"))
'data.frame': 1 obs. of 1 variable:
$ V1: num 2.15e+10
_
「what」のタイプまたはモードを指定しない場合、scan
はnumeric()
を想定し、成功します。