A: 특정 열에 apply() 함수를 사용하는 방법


R의 데이터 프레임의 특정 열에 함수를 적용하기 위해 apply() 함수를 사용하려는 경우가 종종 있습니다.

그러나 apply() 함수는 함수를 적용하기 전에 먼저 데이터 프레임의 모든 열이 동일한 객체 유형을 갖도록 강제하는데, 이는 때때로 의도하지 않은 결과를 초래할 수 있습니다.

더 나은 선택은 다음 기본 구문을 사용하는 lapply() 함수입니다.

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

이 특정 예에서는 데이터 프레임의 col1col2 에만 my_function 함수를 적용합니다.

다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.

예: 데이터 프레임의 특정 열에 함수 적용

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에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

R의 apply(), lapply(), sapply() 및 tapply()에 대한 가이드
R에서 변환 함수를 사용하는 방법

의견을 추가하다

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