Как мне sh Numeri c вектор и матрица символов? - PullRequest
1 голос
/ 08 февраля 2020

Я новичок в R и пытаюсь создать побочный проект для дополнения моего обучения в классе.

Я пытаюсь подобрать что-то вроде этого вектора

```{R}
matrixvalues <- sample(8, 8 , replace=TRUE)
```

Что в этом примере приводит к

8 3 4 2 4 5 5 1

к этой матрице

#     [,1]  [,2]  [,3]  [,4] [,5] [,6] [,7] [,8]
#[1,] "C"  "S"  "H"  "H"  "H"  "H"  "H"  "M" 
#[2,] "C"  "S"  "H"  "H"  "H"  "H"  "H"  "M" 
#[3,] "C"  "S"  "H"  "H"  "H"  "H"  "H"  "M" 
#[4,] "C"  "S"  "H"  "H"  "H"  "M"  "M"  "M" 
#[5,] "C"  "S"  "H"  "H"  "H"  "M"  "M"  "M" 
#[6,] "C"  "S"  "H"  "M"  "M"  "M"  "M"  "M" 
#[7,] "C"  "S"  "H"  "M"  "M"  "M"  "M"  "M" 
#[8,] "C"  "S"  "H"  "M"  "M"  "M"  "M"  "M"

, где для каждого значения в векторе он последовательно совпадает в столбце матрицы.

Так для этого выходной вектор будет логически работать следующим образом: *

Vector value 1 is 8, so row 1, column 8 is M...

Vector value 2 is 3, so row 2, column 3 is H...

и т. д. *

, поэтому результирующий вектор будет

M , H , H , S , H , M , M , C

Вот рабочий код, я обновлю его, как я go ...

Создать матрицу нарушений

example <- c("C","S","H","H","H","H","H","M","C","S","H","H","H","H","H","M","C","S","H","H","H","H","H","M","C","S","H","H","H","M","M","M","C","S","H","H","H","M","M","M","C","S","H","M","M","M","M","M","C","S","H","M","M","M","M","M","C","S","H","M","M","M","M","M")
rollmatrix <- matrix (example, 8 , 8 , byrow = TRUE)
rollmatrix

Бросок костей

set.seed(1234) 
matrixvalues <- sample( 8 , 8 , replace=TRUE)
matrixvalues

Оценить начальную Roll

inx_mat <- cbind(row = seq_along(matrixvalues), col = matrixvalues)
initialroll <- rollmatrix[inx_mat]
initialroll

1 Ответ

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

Используйте индексную матрицу, в данном случае матрицу с 2 столбцами, строками и столбцами.

set.seed(1234)    # Make the code reproducible

x <- matrix(sample(LETTERS, 64, replace = TRUE), 8)
matrixvalues <- sample(8, 8, replace = TRUE)

Теперь для индексной матрицы.

inx_mat <- cbind(row = seq_along(matrixvalues), col = matrixvalues)
x[inx_mat]
#[1] "S" "N" "V" "Z" "X" "K" "I" "F"
...