Я столкнулся с проблемой построения рандомизированной матрицы, где у меня частично уже есть значения (которые должны оставаться фиксированными, поэтому никакой дальнейшей рандомизации нет).
Посмотрим:
матрица должна получиться 10 на 10
n <- 10
Я хочу, чтобы мои первые строки были данными, которые я ввожу. например:
row1<- c(1,4,7,6,5,3,2,8,9,10)
row2<- c(10,7,3,2,1,4,5,9,8,6)
row3<- c(9,2,4,3,8,7,10,1,6,5)
Чтобы построить матрицу с 10 строками (и 10 столбцами), я объединил эти строки с образцами (без замены, потому что я хочу, чтобы каждое число было уникальным в каждой строке).
first.rows<-rbind(row1,row2,row3,sample(n,n,replace=F),sample(n,n,replace=F),sample(n,n,replace=F),sample(n,n,replace=F),sample(n,n,replace=F),sample(n,n,replace=F),sample(n,n,replace=F))
выход:
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
row1 1 4 7 6 5 3 2 8 9 10
row2 10 7 3 2 1 4 5 9 8 6
row3 9 2 4 3 8 7 10 1 6 5
6 1 5 4 2 10 3 8 7 9
2 5 7 8 9 6 1 3 4 10
10 6 4 1 8 3 7 2 5 9
8 5 3 2 4 1 10 7 6 9
10 7 9 6 8 2 5 4 3 1
1 10 8 4 7 3 5 2 6 9
2 1 10 4 8 9 3 6 5 7
Пока все хорошо.. Однако теперь у меня проблема, что нет контроля над уникальными числами в столбцах. Хотя это то, что мне нужно. Я понимаю, что это так, потому что я использовал rbind (и поэтому только функция отсутствия дубликатов работает только для строк). Но я не знаю, как еще подойти к этой проблеме. Ряды 1-3 должны остаться точно такими же, как сейчас.
Любые идеи?
row3
такой же, как и пятый элемент вrow1
.. Если я вас правильно понял, это противоречит правилу, которое вы навязываете, не так ли? - person KenHBS   schedule 13.09.2017