본문 바로가기

R

데이터 조작 dplyr

2022년 09월 02일 컨디션 저하로 인한 미실습 내용 독학

 

1) dplyr 패키지 활용

 

◈ 파이프 연산자(%>%) 이용 

# iris 데이터셋을 대상으로 '%>%' 연산자를 이용하여 함수 적용하기

#dplyr 패키지 설치 및 메모리 로드
install.package("dplyr")
library(dplyr)

iris %>% head()   	# iris 전체 데이터 셋의 앞부분 6개 관측치 추출
					# 위 iris 전체 데이터 셋의 헤드 부분에 대하여
                    
iris %>% head() %>% Sepal.length >= 5.0
					# 과 같이 해당하는 부분의 조건에 만족하는 값만 추출할 수 있다

 

%>% 연산을 통해 위와 같이 일정 영역에서도 조건에 만족하는 값만 추출할 수 있다

 

 

2) 데이터프레임 합치기

 

dplyr 패키지에서 제공하는 bind_rows() 함수 형식을 알아보자

 

# 새로운 데이터프레임 생성
df1 <- data.frame(x = 1:5, y = rnorm(5))
df2 <- data.frame(x = 6:10, y = rnorm(5))

> df1
  x         y
1 1 0.4646093
2 2 0.6155059
3 3 1.6607016
4 4 0.3323401
5 5 1.6360765

> df2
   x           y
1  6  0.01869298
2  7  0.20671615
3  8  0.66928676
4  9 -0.86473392
5 10  0.75551834

새로운 데이터 프레임을 생성하여 각각 df1, df2 라는 변수로 지정해 주었다

 

아래와 같이 bind_rows() 함수를 사용해 합쳐보자!

 

df_rows <- bind_rows(df1, df2)
df_rows

    x           y
1   1  0.46460930
2   2  0.61550587
3   3  1.66070162
4   4  0.33234013
5   5  1.63607655
6   6  0.01869298
7   7  0.20671615
8   8  0.66928676
9   9 -0.86473392
10 10  0.75551834

>>> bind_rows(1번 데이터, 2번 데이터) 와 같이 사용하여 행 단위로 합칠 수 있다.

>>> df1의 5개 관측치 바로 다음에 데이터프레임 df2의 관측치 5개가 행 단위로 합쳐지는 걸 볼 수 있다.

 

 

이번엔 열 단위로 합쳐보자

df_cols <- bind_cols(df1, df2)
df_cols

  x...1     y...2 x...3       y...4
1     1 0.4646093     6  0.01869298
2     2 0.6155059     7  0.20671615
3     3 1.6607016     8  0.66928676
4     4 0.3323401     9 -0.86473392
5     5 1.6360765    10  0.75551834

>>> bind_cols() 함수를 사용해 데이터프레임 df1의 5개 관측치와 df2의 5개 관측치를 열 단위로 합친다.