Случайный выбор строки после поднабора - PullRequest
0 голосов
/ 18 января 2019

У меня есть матрица NA 10x3, которая заполняет одну случайную строку случайными числами от 1 до 100. Я хочу выбрать другую случайную строку (без так называемой замены) и заполнить ее, не зная, какая строка была изначально заполнена. Я не уверен, как идти о втором выборе. Я полагаю, мне нужно будет найти способ поднабора только строк с NA, а затем выбрать случайным образом. Если вам нужны подробности, пожалуйста, дайте мне знать.

myData <- matrix(data = NA,10,3)
random row selection.
myData[sample(1:10,size = 1,),] <- c(sample(1:100,size = 1,replace = TRUE),sample(1:100,size = 1,replace = TRUE),sample(1:100,size = 1,replace = TRUE))

1004 *

Не уверен второй случайный выбор

1 Ответ

0 голосов
/ 18 января 2019

Вам не нужно хранить подмножества индивидуально.Все это может быть обработано в цикле while:

myData <- matrix(data = NA,10,3)

while(sum(is.na(myData))>0){ ## while there are NAs
  if (sum(is.na(myData)[,1])>1){ ## if it is not the last row (because the last row will need differetn approach being a vector, and not a matrix)
    myData[is.na(myData)[,1],][ ## from the subset of NAs whose first column (and hence all of it) is not NA
      sample(1:nrow(myData[ ## choose one randomly
        is.na(myData)[,1],] ),size = 1),] = sample(1:100,size = 3,replace = TRUE) ## substitute it by a random vector of the same length
  } else { ## for the last one
    myData[is.na(myData)[,1],]= sample(1:100,size = 3,replace = TRUE) 
  }

}
...