Як використовувати функцію cross() у dplyr (3 приклади)


Ви можете використовувати функцію Cross() з пакету dplyr у R, щоб застосувати перетворення до кількох стовпців.

Існує безліч способів використання цієї функції, але наведені нижче методи ілюструють кілька поширених способів використання.

Спосіб 1. Застосуйте функцію до кількох стовпців

 #multiply values in col1 and col2 by 2
df %>% 
  mutate(across(c(col1, col2), function (x) x*2))

Спосіб 2. Обчисліть підсумкову статистику для кількох стовпців

 #calculate mean of col1 and col2
df %>%
  summarise(across(c(col1, col2), mean, na. rm = TRUE ))

Спосіб 3: обчислення кількох підсумкових статистичних даних для кількох стовпців

 #calculate mean and standard deviation for col1 and col2
df %>%
  summarise(across(c(col1, col2), list(mean=mean, sd=sd), na. rm = TRUE ))

У наведених нижче прикладах показано, як використовувати кожен метод із таким кадром даних:

 #create data frame
df <- data. frame (conf=c('East', 'East', 'East', 'West', 'West', 'West'),
                 points=c(22, 25, 29, 13, 22, 30),
                 rebounds=c(12, 10, 6, 6, 8, 11))

#view data frame
df

  conf points rebounds
1 East 22 12
2 East 25 10
3 East 29 6
4 West 13 6
5 West 22 8
6 West 30 11

Приклад 1. Застосування функції до кількох стовпців

У наведеному нижче коді показано, як використовувати функцію Cross() для множення значень у стовпцях балів і підбирань на 2:

 library (dplyr)

#multiply values in points and rebounds columns by 2
df %>% 
  mutate(across(c(points, rebounds), function (x) x*2))

  conf points rebounds
1 East 44 24
2 East 50 20
3 East 58 12
4 West 26 12
5 West 44 16
6 West 60 22

Приклад 2: обчислення підсумкової статистики для кількох стовпців

Наступний код показує, як використовувати функцію cross() для обчислення середнього значення стовпців очок і підбирань :

 library (dplyr)

#calculate mean value of points an rebounds columns
df %>%
  summarise(across(c(points, rebounds), mean, na. rm = TRUE ))

  rebound points
1 23.5 8.833333

Зверніть увагу, що ми також можемо використовувати функцію is.numeric для автоматичного обчислення підсумкової статистики для всіх числових стовпців у фреймі даних:

 library (dplyr)

#calculate mean value for every numeric column in data frame
df %>%
  summarise(across(where(is. numeric ), mean, na. rm = TRUE ))

  rebound points
1 23.5 8.833333

Приклад 3: обчислення кількох підсумкових статистичних даних для кількох стовпців

У наведеному нижче коді показано, як використовувати функцію cross() для обчислення середнього значення та стандартного відхилення стовпців очок і підбирань :

 library (dplyr)

#calculate mean and standard deviation for points and rebounds columns
df %>%
  summarise(across(c(points, rebounds), list(mean=mean, sd=sd), na. rm = TRUE ))

  points_mean points_sd rebounds_mean rebounds_sd
1 23.5 6.156298 8.833333 2.562551

Примітка . Ви можете знайти повну документацію для функції cross() тут .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші поширені функції за допомогою dplyr:

Як видалити рядки за допомогою dplyr
Як упорядкувати рядки за допомогою dplyr
Як фільтрувати за кількома умовами за допомогою dplyr

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *