이번 글에서는 데이터 프레임을 다루는 함수들에 대해 살펴보겠습니다.
우선 데이터 프레임은 지난 글에서 간단히 소개를 해드렸는데요.
간단히 설명을 다시 해드리자면 2차원 공간의 행렬이라 생각해주시면 될것 같습니다.
자 그럼 오늘의 주제인 데이터 프레임을 다루는 함수에 대해 소개를 시작하도록 하겠습니다.
첫번째로는 subset이라는 함수인데요.
이 함수는 어떤 데이터 프레임에서 조건에 맞는 데이터만을 추출해낼수 있습니다.
# x
# object to be subsetted.
# 원본 데이터 오브젝트입니다.
# subset
# logical expression indicating elements or rows to keep:
# missing values are taken as false.
# 조건에 맞는 데이터들을 추출할때 사용할 조건입니다.
# select
# expression, indicating columns to select from a data frame.
# 조건에 맞는 데이터들을 추출했을때 갖고 올 열들만 특별히 지정해주고 싶을때 사용합니다.
# drop
# passed on to [ indexing operator.
# 이건 뭔지 잘 모르겠네요..
subset(x, subset, select, drop = FALSE)
이렇게만 보시면 이해가 잘 안가실테니 예시를 간단히 보여드리겠습니다.
예시에서 사용할 데이터는 R에서 기본적으로 제공하는 mtcars라는 데이터프레임인데요.
다음과 같은 구성으로 이루어져 있습니다.
여기서 Transmission이 automatic인 데이터들만 뽑기
(head함수는 출력결과를 상단의 몇개만 출력하게 해주는 함수입니다.)
8실린더이고 300마력 이상인 데이터들만 추출
100마력 이하이거나 300마력 이상인 데이터만 추출
다음은 apply라는 함수인데요.
이 함수는 어떠한 데이터에 어떤 함수를 일괄적으로 적용시켜주는 함수입니다.
(주의할점: 이 함수는 데이터에 어떤 함수를 일괄적으로 적용시켜주다 보니 어떤 함수가 데이터 자료형을 모두 다룰수 있는지를 알아야 합니다. 예를 들어 iris 데이터셋의 경우 species라는 변수가 Factor형인데, apply(iris, MARGIN=2, FUN=mean)을 실행시킬 경우 에러가 발생하게 됩니다)
# X
# an array, including a matrix.
# 기본적으로는 배열(벡터)을 의미하지만 Matrix형태의 데이터도 가능합니다.
# MARGIN
# a vector giving the subscripts which the function will be applied over.
# E.g., for a matrix 1 indicates rows, 2 indicates columns,
# c(1, 2) indicates rows and columns. Where X has named dimnames,
# it can be a character vector selecting dimension names.
# 함수를 적용할 방향입니다.
# 1을 넣으면 행 방향으로 함수를 적용하고, 2를 넣으면 열 방향으로 함수를 적용합니다.
# c(1,2)는 어떻게 적용되는건지 잘 모르겠네요..
# FUN
# the function to be applied: see ‘Details’.
# In the case of functions like +, %*%, etc.,
# the function name must be backquoted or quoted.
# 적용할 함수입니다.
# 보통은 sum, mean과 같이 함수 이름을 그대로 넣으면 적용할수 있습니다.
# ...
# optional arguments to FUN.
# 위에서 FUN인자의 값으로 넣은 함수의 인자들을 넣는 구간입니다.
# 특별히 추가할 인자가 없다면 넣지 않아도 됩니다.
# simplify
# a logical indicating whether results should be simplified if possible.
# 구체적으로 어떤 상황에 적용되는건진 모르겠지만 가능하면 결과를 단순화해주는 인자라고 하는군요.
apply(X, MARGIN, FUN, ..., simplify = TRUE)
이 함수도 예시를 좀 보여드리겠습니다.
행방향으로 더하기 적용
열방향으로 평균값 구하기
열방향으로 상위 7개의 값만 출력하기
위에서 주의사항을 써두긴 했지만 에러가 나는 케이스를 직접 보여드리겠습니다.
iris라는 데이터셋이고, 5열의 값이 Factor형으로 이루어져 나머지 4개의 열과 다른 타입의 값이라는것을 보실수 있습니다.
여기에 일괄적으로 mean함수를 적용시키게 되면..
이렇게 에러가 발생하게 됩니다.
'Dev > R' 카테고리의 다른 글
[R] 파일 입출력 (0) | 2023.12.29 |
---|---|
[R] 데이터 프레임 (0) | 2023.12.24 |
[R] 기본 내장 함수 (1) | 2023.12.23 |