#r #matrix
Вопрос:
У меня есть следующая logical
матрица:-
k <- matrix(c(T,T,F,F,T,F,T,F,T,T,F,F,T,F,T,F,T,T,T,T,F,F,F,F,F), 5)
Однако, когда я делаю следующее:-
z <- as.integer(k)
Я получаю integer
вектор, а не integer
матрицу:-
[1] 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 0 0 0 0 0
Я хочу, чтобы он получил матрицу, подобную следующей:-
k <- matrix(c(1,1,0,0,1,0,1,0,1,1,0,0,1,0,1,0,1,1,1,1,0,0,0,0,0), 5)
Заранее спасибо.
Ответ №1:
Используйте унарный
:
k
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 0 0 0 0
## [2,] 1 1 0 1 0
## [3,] 0 0 1 1 0
## [4,] 0 1 0 1 0
## [5,] 1 1 1 1 0
Ответ №2:
Возможно, нам придется использовать []
, чтобы сохранить тусклый свет в целости
z <- k
z[] <- as.integer(k)
Или другой вариант-выполнить dim
задание
z <- as.integer(k)
dim(z) <- dim(k)
Или без внесения dim
изменений, можно просто умножить на 1
, чтобы принудить к числовому
z <- k * 1
Ответ №3:
k <- matrix(c(T,T,F,F,T,F,T,F,T,T,F,F,T,F,T,F,T,T,T,T,F,F,F,F,F), 5)
res <- k
res
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] 1 0 0 0 0
#> [2,] 1 1 0 1 0
#> [3,] 0 0 1 1 0
#> [4,] 0 1 0 1 0
#> [5,] 1 1 1 1 0
Создано 2021-10-04 пакетом reprex (v2.0.1)