Hi,
There is a bug in "rhdf5" library (Biocunductor 3.1) when handing 32-bit unsigned data types.
Create HDF dataset which has dataset having 32-bit unsigned int data type, i.e.
import h5py f = h5py.File('t.h5', 'w') ds = f.create_dataset('test', dtype='u4', shape=(4,)) ds[:] = [1, 2 ** 31 + 2, 3, 4] # note 2nd value is 32-bit unsigned int equal to 2147483650 f.close()
Read the dataset with "rhdf5" library in R
library(rhdf5) f = h5read('t.h5', 'test') print(f) [1] 1 2147483647 3 4 # expected 2nd number is 2147483650
It seems like "u4" data type is read as 32-bit signed int type (BTW. using bit64conversion='int' does not help).
This was tried on both Linux 64-bit and Windows 64-bit, R 3.2.1 64-bit.
Regards,
Artur
Any chance to convert them to floating point numbers as suggested here
http://r.789695.n4.nabble.com/Calling-C-code-fom-R-How-to-export-C-quot-unsigned-quot-integer-to-R-td799550.html
?