채니의 개발일기

R - 1. dplyr()함수 :filter, select,mutate 본문

프로그래밍언어/R기초

R - 1. dplyr()함수 :filter, select,mutate

윤채니챈 2023. 6. 21. 20:47
728x90
반응형

dplyr()함수

 

-  데이터 조작과 변형을 위해 설계된  패키지

- 데이터프레임이나 테이블 형태의 데이터를 보다 쉽고 효율적으로 다룰 수 있도록 다양한 함수와 도구를 제공

 

dplyr의 대표적으로 사용되는 함수 

  1. filter(): 행을 선택하여 필터링
  2. select(): 열을 선택하여 추출하거나 제외
  3. mutate(): 새로운 열을 추가하거나 기존 열을 변형
  4. arrange(): 행을 정렬
  5. group_by(): 그룹별로 데이터를 나누기
  6. summarize(): 그룹별로 요약 통계량을 계산

파이프 연산자(%>%) :  데이터 처리 작업을 체인 형태로 표현할 수 있어 코드의 가독성을 높이고 작업 단계를 명확한다.

 

1. 예시 데이터프레임 생성

# 데이터프레임 생성
df <- data.frame(
  name = c("Alice", "Bob", "Charlie", "David", "Eve"),
  age = c(25, 30, 35, 40, 45),
  city = c("Seoul", "New York", "London", "Paris", "Tokyo")
)

 

filter()함수

 

- filter(): 행을 선택하여 필터링

 

filter(.data, condition)
  • .data: 필터링할 데이터프레임
  • condition: 필터링 조건을 지정하는 논리 표현식
library(dplyr)

# age가 30보다 큰 행 선택
filtered_data <- filter(df, age > 30)

결과 : age>30행이 필터링 된것을 알 수 있음

   name age     city
1 Charlie  35   London
2  David  40    Paris
3    Eve  45    Tokyo

 

**파이프연산자를 활용

filter_data = 
  df %>%
    filter(age > 30)

 

**조건이 두개인 경우 fiter()함수 두번 사용하기

 

select()함수

 - selcet(열이름) : 지정한 열만 선택됨

 

filter_data =
  df %>%
    filter(age>30) %>%
    select(age,name)

결과

  age    name
1  35 Charlie
2  40   David
3  45     Eve

 

= select(-열이름): 지정된 열 이름을 제외하고 나머지 출력

filter_data =
  df %>%
  filter(age>30) %>%
  select(-city)

결과: city빼고 출력된것을 알 수 있음

     name age
1 Charlie  35
2   David  40
3     Eve  45

 


dplyr를 활용한 전처리

사용할 데이터 수정

df <- data.frame(
  name = c("alice", "bob", "charlie", "david", "eve"),
  age = c(25, 30, 35, 40, 45),
  city = c("Seoul", "New York", "London", "Paris", "Tokyo")
)

*** name의 첫글자를 소문자로 변경

 

mutate()함수  - 새로운 변수 추가

-  데이터 프레임의 열을 변형하거나 새로운 열을 추가하는 데 사용됩

 - 주로 데이터 변형 및 조작 작업을 수행할 때 유용하게 활용

mutate(.data, new_column = expression, ...)

 

  • .data =  데이터 프레임
  • new_column = 새로 추가할 열 
  • expression = 새로운 열의 값을 계산하기 위한 표현, 이 표현식은 변수, 연산자, 함수 등을 포함가능 (값)
  • ...은 추가적인 열을 지정하는 데 사용되며, 필요에 따라 여러 개의 열을 동시에 변형하거나 추가 할 수 있다.
df <- df %>%
  mutate(class = ifelse(age > 30, 'youth', 'beginner'),
         capitalized_name = paste0(toupper(substring(name, 1, 1)), substring(name, 2, nchar(name))))

ifelse(age > 30, 'experienced professional', 'youth') : age>30이면 experienced professional, age<30이면 youth로 표현

capitalized_name =toupper함수를 이용해 첫글자는 대문자, 나머지 글자는 그대로 출력후 합치기

 

**ifelse : 조건문설명

 

R - 조건문 (if else)

• ifelse 표현식 ifelse(condition, yes, no) condition: 평가할 조건을 나타내는 부분 = 논리값(참 또는 거짓) 또는 평가 가능한 표현식으로 제공 yes: 조건이 참인 경우 실행한 값이나 표현식. 조건이 참이면

xcwaonvy.tistory.com

**substring 함수 설명

 

substring함수

substirng() - 사용되는 문자열을 잘라내는 함수 - 함수를 사용하여 문자열에서 지정한 범위의 부분 문자열을 추출가능 • substring() 함수의 구조 substring(text, first, last) text는 잘라낼 대상 문자열] firs

xcwaonvy.tistory.com

***paste()함수설명

*toupper()함수설명

 

결과: class값이 age>30이면 참이면 youth, 거짓이면 beginner로 할당된것을 알 수 있음

     name age     city    class capitalized_name
1   Alice  25    Seoul beginner            Alice
2     Bob  30 New York beginner              Bob
3 Charlie  35   London    youth          Charlie
4   David  40    Paris    youth            David
5     Eve  45    Tokyo    youth              Eve

 

 

728x90
반응형

'프로그래밍언어 > R기초' 카테고리의 다른 글

R - 엑셀파일 읽기  (0) 2023.06.21
R - 2 . dplyr()함수 : groupby, summarise  (0) 2023.06.21
R - toupper()함수 , tolower()함수  (0) 2023.06.21
R - substring함수  (0) 2023.06.21
R - 조건문 (if else)  (0) 2023.06.21