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 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.