integer64これが(からbit64)問題なのか、メルト問題(から)なのかわかりませんが、reshape2integer64データを含むdata.frameを再形成しようとすると、クラス情報がプロセスで破棄され、double表現に戻ります。 :
library(bit64)
library(reshape2)
DF = data.frame(I =letters, Num1 = as.integer64(1:26), Num2 = as.integer64(1:26))
DFM = melt(DF, id.vars = "I")
sapply(DF, class)
sapply(DFM, class)
与える:
> sapply(DF, class)
          I        Num1        Num2 
   "factor" "integer64" "integer64" 
> sapply(DFM, class)
        I  variable     value 
 "factor"  "factor" "numeric" 
また、integer64はその下が二重であるため、データは「破損」しています。
> DF
   I Num1 Num2
1  a    1    1
2  b    2    2
3  c    3    3
4  d    4    4
5  e    5    5
...
> DFM
   I variable         value
1  a     Num1 4.940656e-324
2  b     Num1 9.881313e-324
3  c     Num1 1.482197e-323
4  d     Num1 1.976263e-323
5  e     Num1 2.470328e-323
6  f     Num1 2.964394e-323
これを引き起こしているのは何ですか?これは問題ですかinteger64、それともmelt問題ですか?クラスを作成するとき、この種のことを避けるために何ができるでしょうか?