Ответ: как использовать функцию apply() для определенных столбцов


Часто вам может потребоваться использовать функцию apply() , чтобы применить функцию к определенным столбцам во фрейме данных в R.

Однако перед применением функции функция apply() сначала заставляет все столбцы во фрейме данных иметь один и тот же тип объекта, что иногда может иметь непредвиденные последствия.

Лучшим выбором является функция lapply() , которая использует следующий базовый синтаксис:

 df[c(' col1 ', ' col2 ')] <- lapply(df[c(' col1 ', ' col2 ')], my_function)

В этом конкретном примере функция my_function применяется только к столбцам col1 и col2 во фрейме данных.

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: применить функцию к определенным столбцам во фрейме данных

Предположим, у нас есть следующий кадр данных в R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 points=c(19, 22, 15, NA, 14, 25, 25, 25),
                 rebounds=c(10, 6, 3, 7, 11, 13, 9, 12),
                 assists=c(4, 4, 3, 6, 7, 5, 10, 8))

#view data frame
df

  team points rebound assists
1 A 19 10 4
2 A 22 6 4
3 to 15 3 3
4 A NA 7 6
5 B 14 11 7
6 B 25 13 5
7 B 25 9 10
8 B 25 12 8

Теперь предположим, что мы определили следующую функцию, которая умножает значения на 2, а затем добавляет 1:

 #define function
my_function <- function (x) x*2 + 1

Мы можем использовать следующую функцию lapply() , чтобы применить эту функцию только к столбцам точек и отскоков во фрейме данных:

 #apply function to specific columns
df[c(' points ', ' rebounds ')] <- lapply(df[c(' points ', ' rebounds ')], my_function)

#view updated data frame
df

  team points rebound assists
1 A 39 21 4
2 A 45 13 4
3 A 31 7 3
4 A NA 15 6
5 B 29 23 7
6 B 51 27 5
7 B 51 19 10
8 B 51 25 8

Из результата мы видим, что мы умножаем каждое значение в столбцах очков и подборов на 2, а затем добавляем 1.

Также обратите внимание, что столбцы «Команды» и «Ассисты» остались без изменений.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:

Руководство по применению(), lapply(), sapply() и Tapply() в R
Как использовать функцию преобразования в R

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *