Выборка для строки из матрицы дает пустые данные - PullRequest
0 голосов
/ 25 мая 2019

У меня есть матрица с именем "fida", из которой я случайно выбрал определенное количество строк.В этих строках я выполняю набор команд, в конце которых у меня есть условие, которое, если оно истинно, я хочу произвольно выбрать другую строку из той же матрицы, которая не является ни одной из строк, выбранных ранее.

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

reps=5 #number of samples
randreps=sample(nrow(fida), size = reps, replace = F)

for (loop in randreps)
{calculate a}
if(a==0)
{loop=sample(nrow(fida), size = 1, replace = F)
calculate a}

Но когда я запускаю это, вторая выборка всегда дает пустые данные, и вычисление невозможно.Когда я возвращаюсь и проверяю свой фрейм данных "fida" для выбранной строки, в этой строке есть данные.Я не знаю, что не так, и любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 25 мая 2019

Вы можете подойти к этой проблеме следующим образом.

set.seed(357)
xy <- matrix(1:30, nrow = 10)

original.rows <- sample(10, size = 3, replace = FALSE)
original <- xy[original.rows, ]

# Your calculations.

# Sample from the original matrix again, but without the already sampled
# samples.
middle <- xy[-original.rows, ]
output.row <- sample(nrow(middle), size = 3, replace = FALSE)
output <- xy[output.row, ]

Другими словами, у вас есть матрица, которая содержит только несэмплированные строки, которая служит источником новых строк для ваших вычислений.

...