Условие:
Напишите функцию filtered.cor которая на вход получает data.frame с произвольным количеством переменных (как количественными, так и любых других типов), рассчитывает коэффициенты корреляции Пирсона между всеми парами количественных переменных и возвращает наибольшее по модулю значение коэффициента корреляции. (То есть функция может вернуть -0.9, если это наибольшая по модулю корреляция).
Гарантируется наличие в data.frame хотя бы двух количественных переменных.
Обратите внимание: при проверке вашей функции на вход будут подаваться данные с различными именами колонок. Ваша функция должна корректно работать независимо от имен переменных. Перед тем, как сдавать решение, убедитесь, что ваша функция работает корректно на разных данных, с разными именами колонок.
Решение:
Ниже представлено решение задачи с подробным объяснением шаг за шагом. ───────────────────────────── КОД ФУНКЦИИ: filtered.cor - function(df) { # 1. Оставляем только количественные (numeric) переменные numeric_vars - sapply(df, is.numeric) df_num - df[, numeric_vars, drop = FALSE] # 2. Рассчитываем матрицу коэффициентов корреляции Пирсона между количественными переменными. # Параметр use = pairwise.complete.obs позволяет учитывать пары наблюдений без пропусков. corr_mat - cor(df_num, use = pairwise.complete.obs) # 3. Так как диагональные элементы равны 1, а нам нужны па...
