Я вычисляю режим столбца на основе другого столбца, но не могу добавить возврат функции к вектору:
getmode <- function(v) {
uniqv <- unique(v)
uniqv[which.max(tabulate(match(v, uniqv)))]
}
Выше функции дайте мне режим столбца. Когда я вызываю функцию, я получаю
вывести следующим образом:
x<-income_train$workclass[income_train$educational_num == '16']
x
Выход:
[1] Private
Levels: ? Federal-gov Local-gov Never-worked Private Self-emp-inc Self-emp-not-inc State-gov Without-pay
Теперь я хочу создать функцию, которая для каждого значения столбца Educational_num, т.е. с 1 по 16, я получаю режим для рабочего класса. Поэтому я написал код:
`z <-c()
for (i in 1:16){
x<-NULL
x<-income_train$workclass[income_train$educational_num == i]
result <- getmode(income_train$workclass)
print(result)
z <- c(z,result)
}
print(z)`
Выше код дает мне вывод, как показано ниже:
[1] Private
Levels: ? Federal-gov Local-gov Never-worked Private Self-emp-inc Self-emp- not-inc State-gov Without-pay
[1] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
Я не знаю, откуда 5. Я хочу, чтобы результат содержал 16 "Private". Что доказывает, что для каждого значения столбца Educational_num Mode в режиме рабочего места столбец имеет значение «Private». Пожалуйста, помогите.