Чрезвычайно новичок, и вся концепция случайного выполнения действий в R - это то, что мне еще не удалось понять.
Мой код ниже - это начало моей попытки создать матрицу, состоящую из случайного распределения букв a - e (с заменой и т. д.), которая является моим вектором "bob.a". Затем мне нужно выбрать случайный элемент из этой матрицы и заменить его другим образцом «bob.a» (то есть другой случайной буквой, даже если эта буква заканчивается одинаково). В идеале я бы пропустил это через цикл примерно 100 раз, пока каждый элемент не будет заменен случайным образом (хотя то, что каждый элемент заменен, не имеет значения по сравнению с общей схемой, заключающейся в том, чтобы просто убедиться, что я случайным образом заменяю элементы 100 раз).
Мой код:
##Create Bob Vector
bob.a<-factor(c(letters[1:5]))
##Check Bob Vector
bob.a
#Matrix creation (Random)
bob.matrix<- matrix(sample(bob.a,25,replace=TRUE),
nrow=5,
ncol=5,
byrow = TRUE)
##Check bobmatrix.v2
bob.matrix
##Random removal (&replace?)
bob.matrix[2,3] <- sample(bob.a,1,replace=TRUE)
sample(bob.matrix,1)
bob.matrix[,] <- sample(bob.a,1,replace=TRUE)
sample(bob.matrix,1) <- sample(bob.a,1,replace=TRUE)
(Я делаю все очень просто и проверяю каждый шаг, потому что мне очень нужно понять основные концепции того, что я делаю!)
Хотя я уверен, что ответ будет включать выборку и, возможно, индекс, просто делать это случайным образом сейчас совершенно невозможно.
Я попытался просто сделать простую замену, просто чтобы проверить, что я знаю, как это сделать, но это даже не сработало, потому что строка
bobmatrix.v2[2,3] <- sample(bob.a,1,replace=TRUE)
Вставляет числовое значение для текста (например, заменяет позицию [2,3] на 1 вместо a), что меня полностью сбило с толку. В последних двух строках кода я пробую разные вещи, которые не работают для того, о чем я думал.
Я думал, что при случайной замене может использоваться либо индексация, либо выборка, но мои знания об индексации довольно низкие. И то, что я видел в Интернете, часто основано на замене определенных элементов (например, всех «а» чем-то другим) или некоторых вариациях этого вместо выбора одного случайного элемента в матрице, в так же, как и образец (но с возможностью замены этого элемента).
В конечном итоге мне нужно 3 (что я считал простыми) вещи:
- Выберите случайный элемент/позицию в матрице
- Выберите случайную букву из вектора "sample(bob.a,1)
- Замените 1 на 2 (случайный элемент/позиция со случайной буквой из вектора).
Любая помощь будет оценена по достоинству, и хотя это кажется относительно бессмысленным, это основная концепция для некоторого программирования, которое мне придется делать летом, и я очень, очень хочу иметь возможность делать и понимать, что происходит, чтобы быть уверенным Я действительно могу сделать проект, который я взял на себя.
Кроме того, я еще не изучал циклическую часть этого, поэтому любое руководство было бы здорово.
Огромное спасибо