Как заполнить матрицу, если строка и столбец имеют определенное число в R? - PullRequest
0 голосов
/ 08 декабря 2018

Я хочу создать матрицу, такую, что если (n-ая строка - n-ый столбец) = 2 или 3, то она должна быть заполнена некоторым числом, скажем, 5.

Итак, matrix [7,9] =5;и матрица [5,2] = 5;и матрица [13,15] = 5 и т. д.

Я пытался

matrix <- matrix(nrow = n, ncol = n)
for (i in matrix[i,]){
  for (j in matrix[,j]){
    ifelse(((i-j) == 2|3), 5, 0)
  }
}

Очевидно, что это неправильно, поскольку i и j не соответствуют первому, второму... n-ая строка / столбец.Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 08 декабря 2018

Вот способ использования row и col

n <- 10
mat <- matrix(nrow = n, ncol = n) 

row_col_diff <- row(mat) - col(mat)
mat[row_col_diff ==  2 | row_col_diff ==  3] <- 5
mat
#      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
# [1,]   NA   NA   NA   NA   NA   NA   NA   NA   NA    NA
# [2,]   NA   NA   NA   NA   NA   NA   NA   NA   NA    NA
# [3,]    5   NA   NA   NA   NA   NA   NA   NA   NA    NA
# [4,]    5    5   NA   NA   NA   NA   NA   NA   NA    NA
# [5,]   NA    5    5   NA   NA   NA   NA   NA   NA    NA
# [6,]   NA   NA    5    5   NA   NA   NA   NA   NA    NA
# [7,]   NA   NA   NA    5    5   NA   NA   NA   NA    NA
# [8,]   NA   NA   NA   NA    5    5   NA   NA   NA    NA
# [9,]   NA   NA   NA   NA   NA    5    5   NA   NA    NA
#[10,]   NA   NA   NA   NA   NA   NA    5    5   NA    NA
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...