R: Что такое R-эквивалент свойств массива .dtype.itemsize и .dtype.alignment numpy? - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь преобразовать что-то подобное из Python в R:

dt = my_array.dtype
fw = int(dt.itemsize/dt.alignment)
b = numpy.array([list(w.ljust(fw)) for w in my_array.T])

Я осмотрелся, но ничего не нашел по этой конкретной теме.

1 Ответ

0 голосов
/ 01 ноября 2018

Первая строка извлекает тип данных. R может использовать класс (my_array). Использование typeof или mode также возможно, но если вы некоторое время не изучали R, вы можете не получить желаемую информацию. Похоже, что Python кодирует несколько типов информации в строке типа данных. На самом деле нет точной параллели в R, но вы можете посмотреть значение, возвращаемое str () В отличие от Python dt, значение из str не будет доступно для дальнейших разбиений дополнительными функциями. Со страницы справки:

Значение

str ничего не возвращает по соображениям эффективности. Очевидный побочный эффект - вывод на терминал.

Функция attributes иногда дает дополнительную информацию об объекте, но в случае массива нет ничего дополнительного к информации из dim.

> my_array <- array(1:24, c(2,3,4))  # a 2 x 3 x 4 array of integers
> class(my_array)
[1] "array"
> str(my_array)
 int [1:2, 1:3, 1:4] 1 2 3 4 5 6 7 8 9 10 ...
dim(my_array)   # Not sure, but this might be the equivalent of "alignment"
[1] 2 3 4
 attributes(my_array)
$dim
[1] 2 3 4
> length(my_array)
[1] 24
> mode(my_array)
[1] "numeric"
...