R при выборке букв (БУКВ) как я могу проверить, является ли следующая буква большим значением буквы, чем предыдущая?

#r

Вопрос:

Мне нужно продолжать печатать (рисовать) буквы до тех пор, пока следующее письмо не выйдет из строя по сравнению с предыдущим.

Примером может быть C-D-E-A, количество розыгрышей будет равно 4, так как A не после E. Я пытаюсь использовать цикл while для этого.

 draw <- function() {

   drawletters <-  sample(LETTERS)
   drawnum <- 0


   while (drawletters > drawletters) {
      firstdraw <- drawletters
      drawletters <- sample(LETTERS)
      drawnum <- drawnum   1
    }

   print(drawletters)

}
 

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

Ответ №1:

Вот одно из возможных решений:

 # Create an empty (NULL) vector to store the results of each run
results <- c()

# Create the function
draw <- function(){
  # Start with draw_num = 0
  draw_num <- 0
  # Draw a letter
  firstdraw <- sample(LETTERS, 1)
  # Add 1 to draw_num
  draw_num <- draw_num   1
  # Draw another letter
  nextdraw <- sample(LETTERS, 1)
  # Add another 1 to draw_num
  draw_num <- draw_num   1
  # Print the letters (you can omit this if you don't need it)
  print(firstdraw)
  print(nextdraw)
  # Then use a while loop to print the letters and add 1 to draw_num
  # until the next letter comes before the previous
    while(nextdraw > firstdraw) {
      firstdraw <- nextdraw
      nextdraw <- sample(LETTERS, size = 1)
      draw_num <- draw_num   1
      print(nextdraw)
    }
  # Then print draw_num
  print(draw_num)
  # And append draw_num to the results vector
  results <<- c(results, draw_num)
}

# Run the function a bunch of times (e.g. run "draw()" 10X)
draw()


# Then you can see the average number of letters drawn across all runs
mean(results)
#>[1] 2.7
 

Комментарии:

1. Я не уверен, что это именно то, что я ищу, хотя это отчасти помогает. Основная цель состоит в том, чтобы придерживаться одного образца без каких-либо замен. Мне сказали, что ответ был примерно около 2,72 ничьих. Я думаю, главное-как я могу сравнить образец с самим собой . Я предполагаю, что мы используем скобки [] , но я не знаю правильного способа сделать это