Мне дали задание написать функцию, которую я назвал: my_mode_k
.
Вход состоит из двух переменных:
(x, k)
как x
, естьвектор натуральных чисел длиной n
.величайший объект x
может быть k
, учитывая, что k < n
.
Выход my_mode_k - это объект с самой высокой частотой x
.если в векторе более одного объекта, который является общим в x
одинаковое количество раз, - функция выведет минимальный объект между ними.
например:
my_mode_k(x = c(1, 1, 2, 3, 3) , k =3)
1
Это код, который я написал:
my_mode_k <- function(x, k){
n <- length(x)
x_lemma <- rep(0, k)
for(i in 1:n){
x_lemma[i] < x_lemma[i] +1
}
x_lem2 <- 1
for( j in 2:k){
if(x_lemma[x_lem2] < x_lemma[j]){
x_lem2 <- j
}
}
x_lem2
}
, который не работает должным образом.например:
my_mode_k(x = c(2,3,4,3,2,2,5,5,5,5,5,5,5,5), k=5)
[1] 1
, так как функция должна возвращать 5
.
Я не понимаю, почему и какова интуиция, чтобы даже знать, если функцияработает должным образом (мне потребовалось некоторое время, чтобы понять, что не выполняет нужную задачу), поэтому я мог исправить ошибку в ней.