Как сохранить размер матрицы после использования применить к матрице с одной строкой - PullRequest
1 голос
/ 11 декабря 2019

У меня есть следующая матрица:

> m <- matrix(0, nrow=1, ncol = 3)
> m
     [,1] [,2] [,3]
[1,]    0    0    0
> dim(m)
[1] 1 3

Затем я применяю к нему функцию следующим образом:

> apply(m, 2, function(x) {
+     10 * (2**x - 1)
+ })
[1] 0 0

Как вы можете видеть, выход становится вектором (т.е. dim = NULL). Как я могу сохранить размер после использования apply?

1 Ответ

4 голосов
/ 11 декабря 2019

Используйте [], чтобы сохранить размерность

m[] <- apply(m, 2, function(x) 10 * (2**x - 1))
m
#     [,1] [,2] [,3]
#[1,]    0    0    0

Однако R векторизовано, и такие математические операции могут выполняться непосредственно без необходимости apply или каких-либо циклов.

10 * (2**m - 1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...