元の数値は825010211307012
から825010304926185
までの整数です。 fread()
は、すべての数字を4.076092e-309
に変えます。fread()は4.076092e-309として大きな数値を読み取ります
read.table
は正常に動作しますが、大量のデータを読み込む必要がありますので使用できません。
このエラーを修正するにはどうすればよいですか?前
:あなたはbit64
パッケージをインストールした場合
元の数値は825010211307012
から825010304926185
までの整数です。 fread()
は、すべての数字を4.076092e-309
に変えます。fread()は4.076092e-309として大きな数値を読み取ります
read.table
は正常に動作しますが、大量のデータを読み込む必要がありますので使用できません。
このエラーを修正するにはどうすればよいですか?前
:あなたはbit64
パッケージをインストールした場合
そしてfread
は、これらの大きな整数を読み取るためにそれを使用します次に
> install.packages("bit64")
:
> fread("./bignums.txt")
V1
1: 4.076092e-309
2: 4.076092e-309
マジックを行い
を> fread("./bignums.txt")
V1
1: 825010211307012
2: 825010304926185
fread
は、64ビット整数にそれらを読んでいます
> fread("./bignums.txt")$V1
integer64
[1] 825010211307012 825010304926185
私にはわからない、なぜfread
誤読それらをbit64
は使用できません。私は少なくとも警告を期待しています...
https://github.com/Rdatatable/data.table/blob/master/NEWS.mdによると、これは開発バージョン1.10.5で修正されています:_ fream() print64()はinteger64のカラムは存在するが、パッケージbit64はインストールされていないので、意図したとおりに警告が表示される。 – Uwe
関連:https://stackoverflow.com/questions/44973544/data-tablefread-silently-corrupts-long-integers – Scarabee
Githubの問題はここにあります:https: //github.com/Rdatatable/data.table/issues/2250 – Scarabee
@Scarabee IMHO、https://github.com/Rdatatable/data.table/issues/2250は、より大きい整数> 2を扱うのでここでは関係ありません^ 63は 'bit64'パッケージでは処理できません。https://github.com/Rdatatable/data.table/issues/1618とhttp://stackoverflow.com/questions/32339636/long-数字文字としての文字列 – Uwe