Кажется, у меня есть простая проблема в R, для которой я не нашел простого решения: я хотел бы преобразовать массив целых чисел в raw. Преобразование между другими простыми типами имеет аналогичную проблему. Я нашел следующие не элегантные решения:
- используйте as.raw и создайте новый массив со старыми размерами:
a <- array(255:261,c(2,3))
b <- array(as.raw(a),dim(a))
используйте as.raw и сбросьте атрибут измерения:
a <- array(255:261,c(2,3))
b <- as.raw(a)
dim(b) <- dim(a)
изменить режим хранения
a <- array(255:261,c(2,3))
b <- a
storage.mode(b) <- "raw"
Все решения действительно сложны для чего-то простого. В решениях 1 и 2 as.raw (как и другие функции. *) Удаляет атрибут dim, поэтому его необходимо сбросить. Решения 2 и 3 не поддерживают напрямую стиль функционального программирования, т. Е. Они не возвращают копию a
с новым типом и, следовательно, не могут быть легко использованы с трубопроводом. Конечно, я могу создать новую функцию для поддержки функционального программирования, но я предполагаю, что я пропускаю что-то простое. Пожалуйста, просветите меня. Спасибо.