Сообщение об ошибке алгоритма R, что я пропустил?

#r

#r

Вопрос:

Недавно я начал работать с R Studio и пытаюсь отсортировать вектор с помощью определенного метода.

Спасибо вам за вашу помощь. Я во всем разобрался. 🙂

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

1. Вы неправильно определяете функцию. Используйте: suggestion_one <- function(v) { ...

2. Ну и ну, какая ошибка! Большое вам спасибо.

3. Использование сложных циклов `for’ обычно может быть устранено в R с помощью компактных функций. Если вы создадите образец вывода, кто-нибудь, вероятно, сможет вам помочь в этом.

4. Спасибо. Вы имеете в виду вывод функции или сам образец?

5. пример строки выходных данных для понимания желаемого порядка сортировки.

Ответ №1:

Я думаю, вы хотите определить функцию с именем suggestion_one , указанным ниже

 suggestion_one <- function(v) {
  n <- length(v)
  for (i in 1:(n - 1)) {
    for (j in 1:(n - 1)) {
      if (v[j] > v[j   1]) {
        tmp <- v[j]
        v[j] <- v[j   1]
        v[j   1] <- tmp
      }
    }
  }
  v
}
 

Кроме того, вы должны оставить a v внизу в качестве возвращаемого значения из функции

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

1. Большое вам спасибо!

Ответ №2:

Я запустил код функции, чтобы проверить вывод:

 suggestion_one(v)
 [1]   7   8  10  16  17  18  19  24  29  30  31  38  41  43  44  51  52  54  60  63  64  68  75  77  80  85
[27]  86  87  88  89  91  94  98  99 100
 

Все, что вам нужно, это:

 v2 <- sort(v) #single line of base R code
v2
 [1]   7   8  10  16  17  18  19  24  29  30  31  38  41  43  44  51  52  54  60  63  64  68  75  77  80  85
[27]  86  87  88  89  91  94  98  99 100