Как узнать разные типы данных для разреженных матриц в R - PullRequest
2 голосов
/ 24 февраля 2020

При использовании команды fac2sparse в я могу решить в опции to, должны ли записи быть типа c("d", "i", "l", "n", "z"). Справка только говорит о том, что стандартным параметром является d, что означает двойной. Я могу догадаться, что следующие два - целочисленные и логические c, я где-то читал, что n обозначает шаблон, и я понятия не имею, что означает z.

Для этого не нужно угадывать, так где же в файлах справки найти эту информацию? Я осмотрел справочные страницы и общую матричную документацию, но не нашел.

1 Ответ

2 голосов
/ 24 февраля 2020

Вы можете увидеть это в исходном коде ,

if (to != "n") 
    df$x <- rep.int(switch(to, d = 1, i = 1L, l = TRUE, z = 1 + 
        (0+0i)), nrow(df))

, поэтому, как вы сказали, d двойное, i целое, l логическое, z комплексное число с 1 на реальном с 0 на мнимой части. Я не уверен, как вы преобразуете что-то из фактора в комплексное число.

И, как правильно заметил @dww, «n» создает nsparsematrix, где хранится только позиционная информация:

fac2sparse(factor(c(1:3,1:2)),to="l")@x
[1] TRUE TRUE TRUE TRUE TRUE

fac2sparse(factor(c(1:3,1:2)),to="d")@x
[1] 1 1 1 1 1

fac2sparse(factor(c(1:3,1:2)),to="n")@x
Error: no slot of name "x" for this object of class "ngCMatrix"
...