Dplyr에서 across() 함수를 사용하는 방법(3가지 예)


R의 dplyr 패키지에 있는 across() 함수를 사용하여 여러 열에 변환을 적용할 수 있습니다.

이 기능을 사용하는 방법은 무수히 많지만 다음 방법은 몇 가지 일반적인 용도를 보여줍니다.

방법 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: 여러 열에 함수 적용

다음 코드는 across() 함수를 사용하여 포인트리바운드 열의 값에 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: 여러 열에 대한 요약 통계 계산

다음 코드는 across() 함수를 사용하여 포인트리바운드 열의 평균 값을 계산하는 방법을 보여줍니다.

 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: 여러 열에 대한 여러 요약 통계 계산

다음 코드는 across() 함수를 사용하여 포인트리바운드 열의 평균 및 표준 편차를 계산하는 방법을 보여줍니다.

 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

참고 : across() 함수에 대한 전체 문서는 여기에서 찾을 수 있습니다.

추가 리소스

다음 튜토리얼에서는 dplyr을 사용하여 다른 일반적인 기능을 수행하는 방법을 설명합니다.

dplyr을 사용하여 행을 삭제하는 방법
dplyr을 사용하여 행을 정렬하는 방법
dplyr을 사용하여 여러 조건으로 필터링하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다