Аргумент размера для writeBin должен быть 1, 2 или 4 для целых чисел - 8 тоже работает, но не для сжатия ;-)
Вам действительно нужен размер = 3?
writeBin запишет целочисленные значения с таким количеством байтов на целое число, которое вы укажете.Если целое число не подходит, старшие биты молча пропускаются.
Для значений со знаком (по умолчанию):
size=1 for integer values between [-128, 127]
size=2 for integer values between [-32768, 32767]
Или, если вы читаете их со знаком Sign = FALSE:
size=1 for integer values between [0, 255]
size=2 for integer values between [0, 65535].
Пример записи слишком больших значений для указанного размера:
writeBin(254:257, "foo.bin", size=1)
readBin("foo.bin", "int", 4, size=1, signed=FALSE) # 254 255 0 1