Вызов diag(x), по-видимому, очень медленный. Нет ли более быстрого способа установить диагональную матрицу? Это кажется довольно простой операцией, но R занимает вечность.
diag(x)
Кроме того, дальнейшее использование диагональной матрицы в умножениях также чрезвычайно медленное. Так что, если бы я хотел использовать разреженные матрицы, есть ли более быстрый способ установить диагональную разреженную матрицу?
Я понятия не имею, что означает "слишком медленный", но
Matrix::Diagonal(n=100)
создаст единичную матрицу 100x100, а
Matrix::Diagonal(x=1:100)
создастразреженная диагональная матрица с записями 1, 2, ... 100