У меня есть следующий фрейм данных для ученика с домашним заданием и оценками за экзамен.
> student1
UID Homework_1 Homework_2 Homework_3 Homework_4 Homework_5 Homework_6 Homework_7 Homework_8
10 582493224 59 99 88 10 66 90 50 80
Homework_9 Homework_10 Exam_1 Exam_2 Exam_3 Section
10 16 NA 41 61 11 A
Отсутствует оценка Homework_10, и мне нужно создать функцию для вменения значения NA со средним или медианным значением.
Функция messy_impute должна иметь следующие аргументы:
данные: фрейм данных или таблица для вменения.
центр: вменять с использованием среднего или медианного значения.
поле: использовать ли строку или столбец для ввода значения (1 - использовать строку 2 - использовать столбец).
Например,
messy_impute(student1,mean,1) should print out
> student1
UID Homework_1 Homework_2 Homework_3 Homework_4 Homework_5 Homework_6 Homework_7 Homework_8
10 582493224 59 99 88 10 66 90 50 80
Homework_9 Homework_10 Exam_1 Exam_2 Exam_3 Section
10 16 **62** 41 61 11 A
since the mean of the rest of the homework is 62.
И, если среднее значение столбцы (другие учащиеся) в разделе A для домашнего задания 10 - 50, затем
messy_impute(student1,mean,2) should print out
> student1
UID Homework_1 Homework_2 Homework_3 Homework_4 Homework_5 Homework_6 Homework_7 Homework_8
10 582493224 59 99 88 10 66 90 50 80
Homework_9 Homework_10 Exam_1 Exam_2 Exam_3 Section
10 16 **50** 41 61 11 A
, поскольку среднее значение столбцов в разделе A равно 50.
Обратите внимание на если поле равно 2, тогда расчет должен производиться в том же разделе.
Я действительно застрял на этом определении функции.