В программировании на R функция mutate()из пакета dplyrпредставляет собой мощный инструмент для создания новых переменных или преобразования существующих внутри фрейма данных. Одной из замечательных особенностей mutate()является возможность работы с пользовательскими функциями, что позволяет гибко и настраиваемо манипулировать данными. В этой статье мы рассмотрим различные методы использования функций в функции mutate(), а также приведем примеры кода, иллюстрирующие их использование.
Метод 1. Определение встроенных функций.
Один из распространенных подходов – определение встроенных функций с помощью ключевого слова function(). Допустим, у нас есть фрейм данных с именем dfсо столбцом с именем price, и мы хотим создать новый столбец discounted_price, к которому применяется скидка в размере 10% от первоначальной цены. Вот как мы можем этого добиться:
library(dplyr)
df <- df %>%
mutate(discounted_price = function(x) x * 0.9)
Метод 2. Использование существующих функций.
Другой метод — использовать существующие функции в mutate(). Например, функцию sqrt()можно использовать для создания нового столбца, содержащего квадратный корень из данного столбца. Предположим, у нас есть столбец с именем areaво фрейме данных df, и мы хотим создать новый столбец sqrt_area:
df <- df %>%
mutate(sqrt_area = sqrt(area))
Метод 3. Создание пользовательских функций
Вы также можете создавать свои собственные функции для выполнения более сложных операций в mutate(). Допустим, у нас есть фрейм данных dfсо столбцом temperatureв градусах Фаренгейта, и мы хотим создать новый столбец temperature_celsius, который преобразует температуру в Цельсия. Вот пример того, как можно определить и использовать пользовательскую функцию:
to_celsius <- function(x) {
(x - 32) * 5 / 9
}
df <- df %>%
mutate(temperature_celsius = to_celsius(temperature))
Метод 4. Применение функций к нескольким столбцам
Если вы хотите применить функцию к нескольким столбцам одновременно, вы можете использовать функцию across()в mutate(). Предположим, у нас есть фрейм данных dfсо столбцами a, bи c, и мы хотим создать новые столбцы a_squared, b_squaredи c_squared, в которых хранятся квадраты значений соответствующих столбцов:
df <- df %>%
mutate(across(a:c, ~ .^2, .names = "{.col}_squared"))
Функция mutate()в R предоставляет гибкий и эффективный способ создания новых переменных или преобразования существующих в кадре данных. Используя функции mutate(), вы можете выполнять широкий спектр манипуляций с данными и настраивать анализ в соответствии со своими конкретными потребностями. В этой статье мы рассмотрели несколько методов использования функций в mutate(), включая определение встроенных функций, использование существующих функций, создание пользовательских функций и применение функций к нескольким столбцам. Эти методы позволят вам эффективно выполнять сложные задачи по обработке данных в R.