R 프로그래밍 _ 'dplyr' 패키지
R 프로그램 필수 패키지 dplyr
오늘배운 dplyr 패키지를 정리해 보자!!
함수명 | 형태 | 기능 |
---|---|---|
%>% | dataframe %>% 함수() %>% 함수()... | 필요한 함수를 순차적으로 적용할 경우 사용할 수 있는 연산자. |
tbl_df() | tbl_df(데이터셋) | 콘솔 창의 크기만큼 데이터 셋을 추출하는 기능 |
filter() | filter(dataframe, 조건1, 조건2) | 조건에 맞는 데이터 셋을 추출하는 기능 |
arrange() | arrange(dataframe, 칼럼1,...) desc(칼럼2)= 내림차순 | 데이터셋의 특정 칼럼으로 정렬하는 기능 |
select() | selesct(dataframe, 칼럼1,...) | 데이터셋을 대상으로 칼럼을 선택하는 기능 |
mutate() | mutate(dataframe, 칼럼1 = 수식1, 칼럼2 = 수식2...) | 새로운 칼럼을 추가하는 기능 |
summarise() | summarise(dataframe, 추가할 칼럼명 = 함수(칼럼명),...) | 특정 칼럼을 추가하는 기능 |
group_by() | group_by(dataframe, 집단변수) | 집단변수을 이용하여 그룹화하는 기능 |
inner_join() | inner_join(df1, df2, 공통변수) | df1 과 df2 모두 x칼럼이 존재하는 관측치만 병합한다. |
left_join() | left_join(df1, df2, 공통변수) | 왼쪽 df1의 x 칼럼을 기준으로 병합한다. |
right_join() | right_join(df1, df2, 공통변수) | 오른쪽 df2의 x 칼럼을 기준으로 병합한다. |
full_join() | full_join(df1, df2, 공통변수) | df1 과 df2 모두 x칼이 있으면 병합한다. |
bind_rows() | bind_rows(df1, df2) | 행 단위로 데이터프레임을 합치는 기능 |
bind_cols() | bind_cols(df1, df2, 공통변수) | 열 단위로 데이터프레임을 합치는 기능 |
renames() | rename(데이터프레임, 변경후 칼럼명 = 변경전 칼럼명) | 칼럼 이름을 변경하는 기능 |
제일많이 사용하는 패키지와 함수 입니다. 암기 필수!! 🙀
파이프 연산자(%>%)
' 형식: dataframe %>% 함수1() %>% 함수2() '
- %>% 연산자는 인수를 함수에 편하게 적용할 수 있다.
- %>% 연산자의
>
(라이트 앵글 브래킷) 기호는 방향의 의미로 왼쪽에 있는 인자를 오른쪽에 있는 함수에 집어넣는 것이 파이프라인의 기능이다.
- %>% 연산자를 사용하면 여러 가지 함수를 한 번에 사용할 수 있다.
- %>% 함수의 큰 장점은 한 번에 한 줄로 코드를 사용할 수 있으므로 함수를 사용할 때마다 따로 저장하는 과정이 없이 여러 함수를 실행할 수 있는 편리성에 있다.
- %>% 연산자에서 왼쪽 %(퍼센트)를 LHS(Left Hand Side) 변수라고 하며 오른쪽 %(퍼센트)를 RHS(Right Hand Side) 변수라고 한다.
library(dplyr)
csvgrade <- read.csv("grade_csv.csv")
csvgrade %>% head( ) %>% summary( )
' %>% 함수의 도트(.) 연산자 '
- 도트(.) 연산자를 사용하여 LHS가 들어갈 위치를 정할 수 있다.
- 도트(.) 연산자는 저장한 인자의 이름을 다시 쓰지 않고 데이터를 사용할 수 있다.
library(dplyr)
# 1:5의 인자를 다시 쓰지 않고 사용할 수 있으며 sum 함수로 호출한다.
1:5 %>% sum(.)
# length 함수에 의해서 길이인 5까지 더해져서 20을 반환한다.
1:5 %>% sum(length(.))
# sum(length(1:5))와 같이 수열을 지정하여 반환하므로 수열의 길이인 5까지 더해서 20을 반환한다.
5 %>% sum(1:.)
# { }(브레이스)를 적용하면 함수를 한 번씩만 실행한다.
5 %>% {sum(1:.)}
csvgrade <- read.csv("grade_csv.csv")
# 1부터 행의 수만큼 수열로 출력하고 나눈 나머지가 0인 행의 부분집합을 추출한다. csvgrade %>% subset(1:nrow(.) %% 2 == 0)
tbl_df()
' tbl_df()함수 '
- 데이터 셋을 대상으로 콘솔 창의 크기에 맞게 데이터를 추출하고, 나머지는 축약형으로 제공
hflights <- hflights %>% tbl_df()
filter()
' filter(dataframe, 조건1, 조건2) '
==
연산자를 적용하여 객체의 특정값을 호출한다.
!=
연산자를 적용하여 객체의 특정값인 아닌 나머지 값들을 호출한다.
>
연산자를 적용하여 객체의 특정값 초과인 값들을 호출한다
<
연산자를 적용하여 객체의 특정값 미만인 값들을 호출한다.
>=
연산자를 적용하여 객체의 특정값 이상인 값들을 호출한다.
<=
연산자를 적용하여 객체의 특정값 이하인 값들을 호출한다.
&
연산자는 객체를 평가하고 객체 모두 TRUE일 때 TRUE로 평가하고 그렇지 않으면 FALSE로 평가한다.
|
연산자를 적용하여 여러 조건 중 하나 이상 충족하는 행을 추출한다.
library(dplyr)
csvgrade <- read.csv("grade_csv.csv") csvgrade %>% filter(class == 1)
csvgrade %>% filter(class != 1)
csvgrade %>% filter(math > 50)
csvgrade %>% filter(math < 50)
csvgrade %>% filter(english >= 80)
csvgrade %>% filter(english <= 80)
csvgrade %>% filter(class == 1 & math >= 50)
csvgrade %>% filter(english < 90 | science < 50)
csvgrade %>% filter(class == 1 | class == 3 | class == 5)
%in% 연산자
- %in% 연산자는 값의 포함 여부를 확인하고 반환한다.
- %in% 연산자는 여러 객체에서 여러 조건을 줄 때는 사용할 수 없다.
library(dplyr)
csvgrade <- read.csv("grade_csv.csv")
csvgrade %>% filter(class %in% c(1, 3, 5))
filter()
- 필터링한 데이터의 객체를 생성한다.
- 데이터의 객체를 생성하여 반환한다.
library(dplyr)
csvgrade <- read.csv("grade_csv.csv")
# 객체 생성
class1 <- csvgrade %>% filter(class == 1)
# class1 객체의 math 컬럼에 접근하여 평균 산출 mean(class1$math)
# class1 객체의 english 컬럼에 접근하여 평균 산출 mean(class1$english)
# class1 객체의 science 컬럼에 접근하여 평균 산출 mean(class1$science)
파이프연산자(%>%)사용하여 hflights_df데이터 셋에 filter()함수 적용:
hflights_df %>% filter(Month ==1 & DayofMonth ==1) 형식
arrange()
' arrange(dataframe, 칼럼1,...) desc(칼럼2)= 내림차순 '
파이프 연산자를 사용하여 hflights_df 데이터 셋에 arrange()함수 적용: hflights_df %>% arrange(yes, Month, DepTime, AirTime) 형식
- arrange 함수를 이용하여 다중 객체의 데이터를 ,(콤마)로 기준으로 오름차순으로 정렬하며 추출한다.
- arrange 함수를 이용하여 데이터를 내림차순으로 정렬하여 추출하려면 기준 객체에
desc() 함수
를 적용한다.
library(dplyr)
csvgrade <- read.csv("grade_csv.csv")
csvgrade %>% arrange(desc(math))
csvgrade %>% arrange(class, math)
select()
' 형식: select(dataframe, 컬럼1, 컬럼2, ...) '
- select() 함수의 인자에
,(콤마)
를 활용하여 여러 객체를 추출한다.
- select() 함수의 인자에
-(마이너스)
연산자를 활용하여 객체 제외하고 추출한다.
- select() 함수 사용시 특정 컬럼만이 아닌 컬럼의 범위 설정 가능 검색조건으로
시작걸럼:종료컬럼
형식으로 컬럼 범위의 시작과 끝을 지정
library(dplyr)
csvgrade <- read.csv("grade_csv.csv")
csvgrade %>% select(class, math)
mutate()
' 형식: mutate(dataframe, 컬럼명1=수식1, 컬럼명2=수식2, ...) '
- 데이터 셋에 특정 컬럼을 추가
- console 참 크기 이외의 컬럼명 확인이 어려운 경우
select()함수
안에 mutate()
함수 사용
hflights_df %>% mutate(gain = ArrDelay – DepDelay, gain_per_hour = gain / (AirTime / 60))
summarise()
' 형식: summarise(dataframe, 추가할 컬럼명 = 함수(컬럼명), ...) '
- 컬럼의 평균과 같이 컬럼을 요약한 통계량을 구할 때는
summarise()
함수와 group_by()
함수를 사용한다.
- 전체의 평균, 표준편차, 사분위수 등 전체적인 값들에 대한 요약 통계량을 산출할 때는
summary 함수
를 사용하고, 개별 컬럼의 데이터에 대한 요약 통계량을 구할 때는 summarise 함수
를 사용한다.
- 결과를 요약표로 만들면 컬럼의 집단 간에 어떤 차이가 있고 어떤 분포를 갖는지 쉽게 파악할 수 있다.
- 그룹으로 나눈 데이터는 다른 분석에도 사용할 수 있으므로 활용도가 매우 높다.
library(dplyr)
csvgrade <- read.csv("grade_csv.csv")
csvgrade %>% summarise(mean_math = mean(math))
hflights_df %>% summarise(avgAirTime = mean(AirTime, na.rm=TRUE))
group_by()
' 형식: group_by(dataframe, 집단변수) '
- 컬럼의 집단별 평균에 대한 요약 통계량을 반환한다.
library(dplyr)
csvgrade <- read.csv("grade_csv.csv")
csvgrade %>% group_by(class) %>% summarise(mean_math = mean(math))
join()
' inner_join(df1, df2, x)
, left_join(df1, df2, x)
, right_join(df1, df2, x)
, full_join(df1, df2, x)
'
- inner_join 함수는 키를 기준으로 열에서 일치하는 열만 결합한다.
- 형식: inner_join(dataframe1, dataframe2, 공통변수)
inner_join(A, B, by = key)
- left_join 함수는 키를 기준으로 왼쪽 열을 결합한다.
- 형식: left_join(dataframe1, dataframe2, 공통변수)
left_join(A, B, by = key)
- right_join 함수는 키를 기준으로 오른쪽 열을 결합한다.
- 형식: right_join(dataframe1, dataframe2, 공통변수)
right_join(A, B, by = key)
- full_join 함수는 키를 기준으로 모든 열을 결합한다.
- 다른 한쪽의 데이터프레임에서 x의 값이 없는 경우 결측치(NA)로 나타난다.
- 형식: full_join(dataframe1, dataframe2, 공통변수)
full_join(A, B, by = key)
bind()
가로
' 형식: bind_rows(dataframe1, dataframe2) '
- bind_rows 함수로 나뉘어져 있는 데이터를 가로로 결합할 수 있다.
library(dplyr)
a <- data.frame(id = c(1, 2, 3, 4, 5), score = c(60, 80, 70, 90, 85))
b <- data.frame(id = c(3, 4, 5, 6, 7), weight = c(80, 90, 85, 60, 85)) # 세로로 결합한다.
bind_rows(a, b)
' 형식: rbind(a, b) '
- rbind 함수로 행을 결합하여 반환한다.
- rbind 함수로 행을 결합하기 위해서는 Data Frame의 열 개수, 칼럼 이름이 같아야 한다
a <- data.frame(id = c(1, 2, 3, 4, 5), score = c(60, 80, 70, 90, 85))
b <- data.frame(id = c(6, 7 , 8), score = c(80, 90, 85))
rbind(a, b)
세로
' 형식: bind_cols(dataframe1, dataframe2) '
- cbind 함수로 열을 결합하여 반환한다.
- cbind 함수로 열을 결합하기 위해서는 Data Frame의 행 개수가 서로 같아야 한다.
library(dplyr)
a <- data.frame(id = c(1, 2, 3, 4, 5), score = c(60, 80, 70, 90, 85)) b <- data.frame(id = c(3, 4, 5, 6, 7), weight = c(80, 90, 85, 60, 85)) # 세로로 결합한다.
bind_rows(a, b)
' 형식: cbind(a,b) '
a <- data.frame(id = c(1, 2, 3, 4, 5), score = c(60, 80, 70, 90, 85))
b <- data.frame(age = c(20, 19 , 20, 19, 21), weight = c(80, 90, 85, 60, 85))
cbind(a, b)
marge()
' 형식: merge(A, B, by = key, all = FALSE, all.x = all, all.y = all) 함수'
- merge 함수는 키를 기준으로 열을 결합하여 반환한다.
A
매개변수: 객체를 설정한다.
B
매개변수: 객체를 설정한다.
by
옵션: 결합할 기준이 되는 칼럼을 설정한다.
all
옵션: 모든 열을 결합하며 기본값은 FALSE다.
all.x
옵션: A 객체를 기준으로 열을 결합한다.
all.y
옵션: B 객체를 기준으로 열을 결합한다.
rename()
' 형식: rename(데이터프레임, 변경후컬럼명 = 변경전컬럼명) '
' 형식: dataframe %>% 함수1() %>% 함수2() '
>
(라이트 앵글 브래킷) 기호는 방향의 의미로 왼쪽에 있는 인자를 오른쪽에 있는 함수에 집어넣는 것이 파이프라인의 기능이다.library(dplyr)
csvgrade <- read.csv("grade_csv.csv")
csvgrade %>% head( ) %>% summary( )
' %>% 함수의 도트(.) 연산자 '
library(dplyr)
# 1:5의 인자를 다시 쓰지 않고 사용할 수 있으며 sum 함수로 호출한다.
1:5 %>% sum(.)
# length 함수에 의해서 길이인 5까지 더해져서 20을 반환한다.
1:5 %>% sum(length(.))
# sum(length(1:5))와 같이 수열을 지정하여 반환하므로 수열의 길이인 5까지 더해서 20을 반환한다.
5 %>% sum(1:.)
# { }(브레이스)를 적용하면 함수를 한 번씩만 실행한다.
5 %>% {sum(1:.)}
csvgrade <- read.csv("grade_csv.csv")
# 1부터 행의 수만큼 수열로 출력하고 나눈 나머지가 0인 행의 부분집합을 추출한다. csvgrade %>% subset(1:nrow(.) %% 2 == 0)
' tbl_df()함수 '
- 데이터 셋을 대상으로 콘솔 창의 크기에 맞게 데이터를 추출하고, 나머지는 축약형으로 제공
hflights <- hflights %>% tbl_df()
filter()
' filter(dataframe, 조건1, 조건2) '
==
연산자를 적용하여 객체의 특정값을 호출한다.
!=
연산자를 적용하여 객체의 특정값인 아닌 나머지 값들을 호출한다.
>
연산자를 적용하여 객체의 특정값 초과인 값들을 호출한다
<
연산자를 적용하여 객체의 특정값 미만인 값들을 호출한다.
>=
연산자를 적용하여 객체의 특정값 이상인 값들을 호출한다.
<=
연산자를 적용하여 객체의 특정값 이하인 값들을 호출한다.
&
연산자는 객체를 평가하고 객체 모두 TRUE일 때 TRUE로 평가하고 그렇지 않으면 FALSE로 평가한다.
|
연산자를 적용하여 여러 조건 중 하나 이상 충족하는 행을 추출한다.
library(dplyr)
csvgrade <- read.csv("grade_csv.csv") csvgrade %>% filter(class == 1)
csvgrade %>% filter(class != 1)
csvgrade %>% filter(math > 50)
csvgrade %>% filter(math < 50)
csvgrade %>% filter(english >= 80)
csvgrade %>% filter(english <= 80)
csvgrade %>% filter(class == 1 & math >= 50)
csvgrade %>% filter(english < 90 | science < 50)
csvgrade %>% filter(class == 1 | class == 3 | class == 5)
%in% 연산자
- %in% 연산자는 값의 포함 여부를 확인하고 반환한다.
- %in% 연산자는 여러 객체에서 여러 조건을 줄 때는 사용할 수 없다.
library(dplyr)
csvgrade <- read.csv("grade_csv.csv")
csvgrade %>% filter(class %in% c(1, 3, 5))
filter()
- 필터링한 데이터의 객체를 생성한다.
- 데이터의 객체를 생성하여 반환한다.
library(dplyr)
csvgrade <- read.csv("grade_csv.csv")
# 객체 생성
class1 <- csvgrade %>% filter(class == 1)
# class1 객체의 math 컬럼에 접근하여 평균 산출 mean(class1$math)
# class1 객체의 english 컬럼에 접근하여 평균 산출 mean(class1$english)
# class1 객체의 science 컬럼에 접근하여 평균 산출 mean(class1$science)
파이프연산자(%>%)사용하여 hflights_df데이터 셋에 filter()함수 적용:
hflights_df %>% filter(Month ==1 & DayofMonth ==1) 형식
arrange()
' arrange(dataframe, 칼럼1,...) desc(칼럼2)= 내림차순 '
파이프 연산자를 사용하여 hflights_df 데이터 셋에 arrange()함수 적용: hflights_df %>% arrange(yes, Month, DepTime, AirTime) 형식
- arrange 함수를 이용하여 다중 객체의 데이터를 ,(콤마)로 기준으로 오름차순으로 정렬하며 추출한다.
- arrange 함수를 이용하여 데이터를 내림차순으로 정렬하여 추출하려면 기준 객체에
desc() 함수
를 적용한다.
library(dplyr)
csvgrade <- read.csv("grade_csv.csv")
csvgrade %>% arrange(desc(math))
csvgrade %>% arrange(class, math)
select()
' 형식: select(dataframe, 컬럼1, 컬럼2, ...) '
- select() 함수의 인자에
,(콤마)
를 활용하여 여러 객체를 추출한다.
- select() 함수의 인자에
-(마이너스)
연산자를 활용하여 객체 제외하고 추출한다.
- select() 함수 사용시 특정 컬럼만이 아닌 컬럼의 범위 설정 가능 검색조건으로
시작걸럼:종료컬럼
형식으로 컬럼 범위의 시작과 끝을 지정
library(dplyr)
csvgrade <- read.csv("grade_csv.csv")
csvgrade %>% select(class, math)
mutate()
' 형식: mutate(dataframe, 컬럼명1=수식1, 컬럼명2=수식2, ...) '
- 데이터 셋에 특정 컬럼을 추가
- console 참 크기 이외의 컬럼명 확인이 어려운 경우
select()함수
안에 mutate()
함수 사용
hflights_df %>% mutate(gain = ArrDelay – DepDelay, gain_per_hour = gain / (AirTime / 60))
summarise()
' 형식: summarise(dataframe, 추가할 컬럼명 = 함수(컬럼명), ...) '
- 컬럼의 평균과 같이 컬럼을 요약한 통계량을 구할 때는
summarise()
함수와 group_by()
함수를 사용한다.
- 전체의 평균, 표준편차, 사분위수 등 전체적인 값들에 대한 요약 통계량을 산출할 때는
summary 함수
를 사용하고, 개별 컬럼의 데이터에 대한 요약 통계량을 구할 때는 summarise 함수
를 사용한다.
- 결과를 요약표로 만들면 컬럼의 집단 간에 어떤 차이가 있고 어떤 분포를 갖는지 쉽게 파악할 수 있다.
- 그룹으로 나눈 데이터는 다른 분석에도 사용할 수 있으므로 활용도가 매우 높다.
library(dplyr)
csvgrade <- read.csv("grade_csv.csv")
csvgrade %>% summarise(mean_math = mean(math))
hflights_df %>% summarise(avgAirTime = mean(AirTime, na.rm=TRUE))
group_by()
' 형식: group_by(dataframe, 집단변수) '
- 컬럼의 집단별 평균에 대한 요약 통계량을 반환한다.
library(dplyr)
csvgrade <- read.csv("grade_csv.csv")
csvgrade %>% group_by(class) %>% summarise(mean_math = mean(math))
join()
' inner_join(df1, df2, x)
, left_join(df1, df2, x)
, right_join(df1, df2, x)
, full_join(df1, df2, x)
'
- inner_join 함수는 키를 기준으로 열에서 일치하는 열만 결합한다.
- 형식: inner_join(dataframe1, dataframe2, 공통변수)
inner_join(A, B, by = key)
- left_join 함수는 키를 기준으로 왼쪽 열을 결합한다.
- 형식: left_join(dataframe1, dataframe2, 공통변수)
left_join(A, B, by = key)
- right_join 함수는 키를 기준으로 오른쪽 열을 결합한다.
- 형식: right_join(dataframe1, dataframe2, 공통변수)
right_join(A, B, by = key)
- full_join 함수는 키를 기준으로 모든 열을 결합한다.
- 다른 한쪽의 데이터프레임에서 x의 값이 없는 경우 결측치(NA)로 나타난다.
- 형식: full_join(dataframe1, dataframe2, 공통변수)
full_join(A, B, by = key)
bind()
가로
' 형식: bind_rows(dataframe1, dataframe2) '
- bind_rows 함수로 나뉘어져 있는 데이터를 가로로 결합할 수 있다.
library(dplyr)
a <- data.frame(id = c(1, 2, 3, 4, 5), score = c(60, 80, 70, 90, 85))
b <- data.frame(id = c(3, 4, 5, 6, 7), weight = c(80, 90, 85, 60, 85)) # 세로로 결합한다.
bind_rows(a, b)
' 형식: rbind(a, b) '
- rbind 함수로 행을 결합하여 반환한다.
- rbind 함수로 행을 결합하기 위해서는 Data Frame의 열 개수, 칼럼 이름이 같아야 한다
a <- data.frame(id = c(1, 2, 3, 4, 5), score = c(60, 80, 70, 90, 85))
b <- data.frame(id = c(6, 7 , 8), score = c(80, 90, 85))
rbind(a, b)
세로
' 형식: bind_cols(dataframe1, dataframe2) '
- cbind 함수로 열을 결합하여 반환한다.
- cbind 함수로 열을 결합하기 위해서는 Data Frame의 행 개수가 서로 같아야 한다.
library(dplyr)
a <- data.frame(id = c(1, 2, 3, 4, 5), score = c(60, 80, 70, 90, 85)) b <- data.frame(id = c(3, 4, 5, 6, 7), weight = c(80, 90, 85, 60, 85)) # 세로로 결합한다.
bind_rows(a, b)
' 형식: cbind(a,b) '
a <- data.frame(id = c(1, 2, 3, 4, 5), score = c(60, 80, 70, 90, 85))
b <- data.frame(age = c(20, 19 , 20, 19, 21), weight = c(80, 90, 85, 60, 85))
cbind(a, b)
marge()
' 형식: merge(A, B, by = key, all = FALSE, all.x = all, all.y = all) 함수'
- merge 함수는 키를 기준으로 열을 결합하여 반환한다.
A
매개변수: 객체를 설정한다.
B
매개변수: 객체를 설정한다.
by
옵션: 결합할 기준이 되는 칼럼을 설정한다.
all
옵션: 모든 열을 결합하며 기본값은 FALSE다.
all.x
옵션: A 객체를 기준으로 열을 결합한다.
all.y
옵션: B 객체를 기준으로 열을 결합한다.
rename()
' 형식: rename(데이터프레임, 변경후컬럼명 = 변경전컬럼명) '
' filter(dataframe, 조건1, 조건2) '
==
연산자를 적용하여 객체의 특정값을 호출한다.!=
연산자를 적용하여 객체의 특정값인 아닌 나머지 값들을 호출한다.>
연산자를 적용하여 객체의 특정값 초과인 값들을 호출한다<
연산자를 적용하여 객체의 특정값 미만인 값들을 호출한다.>=
연산자를 적용하여 객체의 특정값 이상인 값들을 호출한다.<=
연산자를 적용하여 객체의 특정값 이하인 값들을 호출한다.&
연산자는 객체를 평가하고 객체 모두 TRUE일 때 TRUE로 평가하고 그렇지 않으면 FALSE로 평가한다.|
연산자를 적용하여 여러 조건 중 하나 이상 충족하는 행을 추출한다.library(dplyr)
csvgrade <- read.csv("grade_csv.csv") csvgrade %>% filter(class == 1)
csvgrade %>% filter(class != 1)
csvgrade %>% filter(math > 50)
csvgrade %>% filter(math < 50)
csvgrade %>% filter(english >= 80)
csvgrade %>% filter(english <= 80)
csvgrade %>% filter(class == 1 & math >= 50)
csvgrade %>% filter(english < 90 | science < 50)
csvgrade %>% filter(class == 1 | class == 3 | class == 5)
library(dplyr)
csvgrade <- read.csv("grade_csv.csv")
csvgrade %>% filter(class %in% c(1, 3, 5))
library(dplyr)
csvgrade <- read.csv("grade_csv.csv")
# 객체 생성
class1 <- csvgrade %>% filter(class == 1)
# class1 객체의 math 컬럼에 접근하여 평균 산출 mean(class1$math)
# class1 객체의 english 컬럼에 접근하여 평균 산출 mean(class1$english)
# class1 객체의 science 컬럼에 접근하여 평균 산출 mean(class1$science)
파이프연산자(%>%)사용하여 hflights_df데이터 셋에 filter()함수 적용:
hflights_df %>% filter(Month ==1 & DayofMonth ==1) 형식
' arrange(dataframe, 칼럼1,...) desc(칼럼2)= 내림차순 '
파이프 연산자를 사용하여 hflights_df 데이터 셋에 arrange()함수 적용: hflights_df %>% arrange(yes, Month, DepTime, AirTime) 형식
- arrange 함수를 이용하여 다중 객체의 데이터를 ,(콤마)로 기준으로 오름차순으로 정렬하며 추출한다.
- arrange 함수를 이용하여 데이터를 내림차순으로 정렬하여 추출하려면 기준 객체에
desc() 함수
를 적용한다.
library(dplyr)
csvgrade <- read.csv("grade_csv.csv")
csvgrade %>% arrange(desc(math))
csvgrade %>% arrange(class, math)
select()
' 형식: select(dataframe, 컬럼1, 컬럼2, ...) '
- select() 함수의 인자에
,(콤마)
를 활용하여 여러 객체를 추출한다.
- select() 함수의 인자에
-(마이너스)
연산자를 활용하여 객체 제외하고 추출한다.
- select() 함수 사용시 특정 컬럼만이 아닌 컬럼의 범위 설정 가능 검색조건으로
시작걸럼:종료컬럼
형식으로 컬럼 범위의 시작과 끝을 지정
library(dplyr)
csvgrade <- read.csv("grade_csv.csv")
csvgrade %>% select(class, math)
mutate()
' 형식: mutate(dataframe, 컬럼명1=수식1, 컬럼명2=수식2, ...) '
- 데이터 셋에 특정 컬럼을 추가
- console 참 크기 이외의 컬럼명 확인이 어려운 경우
select()함수
안에 mutate()
함수 사용
hflights_df %>% mutate(gain = ArrDelay – DepDelay, gain_per_hour = gain / (AirTime / 60))
summarise()
' 형식: summarise(dataframe, 추가할 컬럼명 = 함수(컬럼명), ...) '
- 컬럼의 평균과 같이 컬럼을 요약한 통계량을 구할 때는
summarise()
함수와 group_by()
함수를 사용한다.
- 전체의 평균, 표준편차, 사분위수 등 전체적인 값들에 대한 요약 통계량을 산출할 때는
summary 함수
를 사용하고, 개별 컬럼의 데이터에 대한 요약 통계량을 구할 때는 summarise 함수
를 사용한다.
- 결과를 요약표로 만들면 컬럼의 집단 간에 어떤 차이가 있고 어떤 분포를 갖는지 쉽게 파악할 수 있다.
- 그룹으로 나눈 데이터는 다른 분석에도 사용할 수 있으므로 활용도가 매우 높다.
library(dplyr)
csvgrade <- read.csv("grade_csv.csv")
csvgrade %>% summarise(mean_math = mean(math))
hflights_df %>% summarise(avgAirTime = mean(AirTime, na.rm=TRUE))
group_by()
' 형식: group_by(dataframe, 집단변수) '
- 컬럼의 집단별 평균에 대한 요약 통계량을 반환한다.
library(dplyr)
csvgrade <- read.csv("grade_csv.csv")
csvgrade %>% group_by(class) %>% summarise(mean_math = mean(math))
join()
' inner_join(df1, df2, x)
, left_join(df1, df2, x)
, right_join(df1, df2, x)
, full_join(df1, df2, x)
'
- inner_join 함수는 키를 기준으로 열에서 일치하는 열만 결합한다.
- 형식: inner_join(dataframe1, dataframe2, 공통변수)
inner_join(A, B, by = key)
- left_join 함수는 키를 기준으로 왼쪽 열을 결합한다.
- 형식: left_join(dataframe1, dataframe2, 공통변수)
left_join(A, B, by = key)
- right_join 함수는 키를 기준으로 오른쪽 열을 결합한다.
- 형식: right_join(dataframe1, dataframe2, 공통변수)
right_join(A, B, by = key)
- full_join 함수는 키를 기준으로 모든 열을 결합한다.
- 다른 한쪽의 데이터프레임에서 x의 값이 없는 경우 결측치(NA)로 나타난다.
- 형식: full_join(dataframe1, dataframe2, 공통변수)
full_join(A, B, by = key)
bind()
가로
' 형식: bind_rows(dataframe1, dataframe2) '
- bind_rows 함수로 나뉘어져 있는 데이터를 가로로 결합할 수 있다.
library(dplyr)
a <- data.frame(id = c(1, 2, 3, 4, 5), score = c(60, 80, 70, 90, 85))
b <- data.frame(id = c(3, 4, 5, 6, 7), weight = c(80, 90, 85, 60, 85)) # 세로로 결합한다.
bind_rows(a, b)
' 형식: rbind(a, b) '
- rbind 함수로 행을 결합하여 반환한다.
- rbind 함수로 행을 결합하기 위해서는 Data Frame의 열 개수, 칼럼 이름이 같아야 한다
a <- data.frame(id = c(1, 2, 3, 4, 5), score = c(60, 80, 70, 90, 85))
b <- data.frame(id = c(6, 7 , 8), score = c(80, 90, 85))
rbind(a, b)
세로
' 형식: bind_cols(dataframe1, dataframe2) '
- cbind 함수로 열을 결합하여 반환한다.
- cbind 함수로 열을 결합하기 위해서는 Data Frame의 행 개수가 서로 같아야 한다.
library(dplyr)
a <- data.frame(id = c(1, 2, 3, 4, 5), score = c(60, 80, 70, 90, 85)) b <- data.frame(id = c(3, 4, 5, 6, 7), weight = c(80, 90, 85, 60, 85)) # 세로로 결합한다.
bind_rows(a, b)
' 형식: cbind(a,b) '
a <- data.frame(id = c(1, 2, 3, 4, 5), score = c(60, 80, 70, 90, 85))
b <- data.frame(age = c(20, 19 , 20, 19, 21), weight = c(80, 90, 85, 60, 85))
cbind(a, b)
marge()
' 형식: merge(A, B, by = key, all = FALSE, all.x = all, all.y = all) 함수'
- merge 함수는 키를 기준으로 열을 결합하여 반환한다.
A
매개변수: 객체를 설정한다.
B
매개변수: 객체를 설정한다.
by
옵션: 결합할 기준이 되는 칼럼을 설정한다.
all
옵션: 모든 열을 결합하며 기본값은 FALSE다.
all.x
옵션: A 객체를 기준으로 열을 결합한다.
all.y
옵션: B 객체를 기준으로 열을 결합한다.
rename()
' 형식: rename(데이터프레임, 변경후컬럼명 = 변경전컬럼명) '
' 형식: select(dataframe, 컬럼1, 컬럼2, ...) '
,(콤마)
를 활용하여 여러 객체를 추출한다.-(마이너스)
연산자를 활용하여 객체 제외하고 추출한다.시작걸럼:종료컬럼
형식으로 컬럼 범위의 시작과 끝을 지정library(dplyr)
csvgrade <- read.csv("grade_csv.csv")
csvgrade %>% select(class, math)
' 형식: mutate(dataframe, 컬럼명1=수식1, 컬럼명2=수식2, ...) '
- 데이터 셋에 특정 컬럼을 추가
- console 참 크기 이외의 컬럼명 확인이 어려운 경우
select()함수
안에mutate()
함수 사용
hflights_df %>% mutate(gain = ArrDelay – DepDelay, gain_per_hour = gain / (AirTime / 60))
summarise()
' 형식: summarise(dataframe, 추가할 컬럼명 = 함수(컬럼명), ...) '
- 컬럼의 평균과 같이 컬럼을 요약한 통계량을 구할 때는
summarise()
함수와 group_by()
함수를 사용한다.
- 전체의 평균, 표준편차, 사분위수 등 전체적인 값들에 대한 요약 통계량을 산출할 때는
summary 함수
를 사용하고, 개별 컬럼의 데이터에 대한 요약 통계량을 구할 때는 summarise 함수
를 사용한다.
- 결과를 요약표로 만들면 컬럼의 집단 간에 어떤 차이가 있고 어떤 분포를 갖는지 쉽게 파악할 수 있다.
- 그룹으로 나눈 데이터는 다른 분석에도 사용할 수 있으므로 활용도가 매우 높다.
library(dplyr)
csvgrade <- read.csv("grade_csv.csv")
csvgrade %>% summarise(mean_math = mean(math))
hflights_df %>% summarise(avgAirTime = mean(AirTime, na.rm=TRUE))
group_by()
' 형식: group_by(dataframe, 집단변수) '
- 컬럼의 집단별 평균에 대한 요약 통계량을 반환한다.
library(dplyr)
csvgrade <- read.csv("grade_csv.csv")
csvgrade %>% group_by(class) %>% summarise(mean_math = mean(math))
join()
' inner_join(df1, df2, x)
, left_join(df1, df2, x)
, right_join(df1, df2, x)
, full_join(df1, df2, x)
'
- inner_join 함수는 키를 기준으로 열에서 일치하는 열만 결합한다.
- 형식: inner_join(dataframe1, dataframe2, 공통변수)
inner_join(A, B, by = key)
- left_join 함수는 키를 기준으로 왼쪽 열을 결합한다.
- 형식: left_join(dataframe1, dataframe2, 공통변수)
left_join(A, B, by = key)
- right_join 함수는 키를 기준으로 오른쪽 열을 결합한다.
- 형식: right_join(dataframe1, dataframe2, 공통변수)
right_join(A, B, by = key)
- full_join 함수는 키를 기준으로 모든 열을 결합한다.
- 다른 한쪽의 데이터프레임에서 x의 값이 없는 경우 결측치(NA)로 나타난다.
- 형식: full_join(dataframe1, dataframe2, 공통변수)
full_join(A, B, by = key)
bind()
가로
' 형식: bind_rows(dataframe1, dataframe2) '
- bind_rows 함수로 나뉘어져 있는 데이터를 가로로 결합할 수 있다.
library(dplyr)
a <- data.frame(id = c(1, 2, 3, 4, 5), score = c(60, 80, 70, 90, 85))
b <- data.frame(id = c(3, 4, 5, 6, 7), weight = c(80, 90, 85, 60, 85)) # 세로로 결합한다.
bind_rows(a, b)
' 형식: rbind(a, b) '
- rbind 함수로 행을 결합하여 반환한다.
- rbind 함수로 행을 결합하기 위해서는 Data Frame의 열 개수, 칼럼 이름이 같아야 한다
a <- data.frame(id = c(1, 2, 3, 4, 5), score = c(60, 80, 70, 90, 85))
b <- data.frame(id = c(6, 7 , 8), score = c(80, 90, 85))
rbind(a, b)
세로
' 형식: bind_cols(dataframe1, dataframe2) '
- cbind 함수로 열을 결합하여 반환한다.
- cbind 함수로 열을 결합하기 위해서는 Data Frame의 행 개수가 서로 같아야 한다.
library(dplyr)
a <- data.frame(id = c(1, 2, 3, 4, 5), score = c(60, 80, 70, 90, 85)) b <- data.frame(id = c(3, 4, 5, 6, 7), weight = c(80, 90, 85, 60, 85)) # 세로로 결합한다.
bind_rows(a, b)
' 형식: cbind(a,b) '
a <- data.frame(id = c(1, 2, 3, 4, 5), score = c(60, 80, 70, 90, 85))
b <- data.frame(age = c(20, 19 , 20, 19, 21), weight = c(80, 90, 85, 60, 85))
cbind(a, b)
marge()
' 형식: merge(A, B, by = key, all = FALSE, all.x = all, all.y = all) 함수'
- merge 함수는 키를 기준으로 열을 결합하여 반환한다.
A
매개변수: 객체를 설정한다.
B
매개변수: 객체를 설정한다.
by
옵션: 결합할 기준이 되는 칼럼을 설정한다.
all
옵션: 모든 열을 결합하며 기본값은 FALSE다.
all.x
옵션: A 객체를 기준으로 열을 결합한다.
all.y
옵션: B 객체를 기준으로 열을 결합한다.
rename()
' 형식: rename(데이터프레임, 변경후컬럼명 = 변경전컬럼명) '
' 형식: summarise(dataframe, 추가할 컬럼명 = 함수(컬럼명), ...) '
summarise()
함수와 group_by()
함수를 사용한다.summary 함수
를 사용하고, 개별 컬럼의 데이터에 대한 요약 통계량을 구할 때는 summarise 함수
를 사용한다.library(dplyr)
csvgrade <- read.csv("grade_csv.csv")
csvgrade %>% summarise(mean_math = mean(math))
hflights_df %>% summarise(avgAirTime = mean(AirTime, na.rm=TRUE))
' 형식: group_by(dataframe, 집단변수) '
- 컬럼의 집단별 평균에 대한 요약 통계량을 반환한다.
library(dplyr)
csvgrade <- read.csv("grade_csv.csv")
csvgrade %>% group_by(class) %>% summarise(mean_math = mean(math))
join()
' inner_join(df1, df2, x)
, left_join(df1, df2, x)
, right_join(df1, df2, x)
, full_join(df1, df2, x)
'
- inner_join 함수는 키를 기준으로 열에서 일치하는 열만 결합한다.
- 형식: inner_join(dataframe1, dataframe2, 공통변수)
inner_join(A, B, by = key)
- left_join 함수는 키를 기준으로 왼쪽 열을 결합한다.
- 형식: left_join(dataframe1, dataframe2, 공통변수)
left_join(A, B, by = key)
- right_join 함수는 키를 기준으로 오른쪽 열을 결합한다.
- 형식: right_join(dataframe1, dataframe2, 공통변수)
right_join(A, B, by = key)
- full_join 함수는 키를 기준으로 모든 열을 결합한다.
- 다른 한쪽의 데이터프레임에서 x의 값이 없는 경우 결측치(NA)로 나타난다.
- 형식: full_join(dataframe1, dataframe2, 공통변수)
full_join(A, B, by = key)
bind()
가로
' 형식: bind_rows(dataframe1, dataframe2) '
- bind_rows 함수로 나뉘어져 있는 데이터를 가로로 결합할 수 있다.
library(dplyr)
a <- data.frame(id = c(1, 2, 3, 4, 5), score = c(60, 80, 70, 90, 85))
b <- data.frame(id = c(3, 4, 5, 6, 7), weight = c(80, 90, 85, 60, 85)) # 세로로 결합한다.
bind_rows(a, b)
' 형식: rbind(a, b) '
- rbind 함수로 행을 결합하여 반환한다.
- rbind 함수로 행을 결합하기 위해서는 Data Frame의 열 개수, 칼럼 이름이 같아야 한다
a <- data.frame(id = c(1, 2, 3, 4, 5), score = c(60, 80, 70, 90, 85))
b <- data.frame(id = c(6, 7 , 8), score = c(80, 90, 85))
rbind(a, b)
세로
' 형식: bind_cols(dataframe1, dataframe2) '
- cbind 함수로 열을 결합하여 반환한다.
- cbind 함수로 열을 결합하기 위해서는 Data Frame의 행 개수가 서로 같아야 한다.
library(dplyr)
a <- data.frame(id = c(1, 2, 3, 4, 5), score = c(60, 80, 70, 90, 85)) b <- data.frame(id = c(3, 4, 5, 6, 7), weight = c(80, 90, 85, 60, 85)) # 세로로 결합한다.
bind_rows(a, b)
' 형식: cbind(a,b) '
a <- data.frame(id = c(1, 2, 3, 4, 5), score = c(60, 80, 70, 90, 85))
b <- data.frame(age = c(20, 19 , 20, 19, 21), weight = c(80, 90, 85, 60, 85))
cbind(a, b)
marge()
' 형식: merge(A, B, by = key, all = FALSE, all.x = all, all.y = all) 함수'
- merge 함수는 키를 기준으로 열을 결합하여 반환한다.
A
매개변수: 객체를 설정한다.
B
매개변수: 객체를 설정한다.
by
옵션: 결합할 기준이 되는 칼럼을 설정한다.
all
옵션: 모든 열을 결합하며 기본값은 FALSE다.
all.x
옵션: A 객체를 기준으로 열을 결합한다.
all.y
옵션: B 객체를 기준으로 열을 결합한다.
rename()
' 형식: rename(데이터프레임, 변경후컬럼명 = 변경전컬럼명) '
' inner_join(df1, df2, x)
, left_join(df1, df2, x)
, right_join(df1, df2, x)
, full_join(df1, df2, x)
'
- 형식: inner_join(dataframe1, dataframe2, 공통변수)
inner_join(A, B, by = key)
- 형식: left_join(dataframe1, dataframe2, 공통변수)
left_join(A, B, by = key)
- 형식: right_join(dataframe1, dataframe2, 공통변수)
right_join(A, B, by = key)
- 다른 한쪽의 데이터프레임에서 x의 값이 없는 경우 결측치(NA)로 나타난다.
- 형식: full_join(dataframe1, dataframe2, 공통변수)
full_join(A, B, by = key)
가로
' 형식: bind_rows(dataframe1, dataframe2) '
- bind_rows 함수로 나뉘어져 있는 데이터를 가로로 결합할 수 있다.
library(dplyr)
a <- data.frame(id = c(1, 2, 3, 4, 5), score = c(60, 80, 70, 90, 85))
b <- data.frame(id = c(3, 4, 5, 6, 7), weight = c(80, 90, 85, 60, 85)) # 세로로 결합한다.
bind_rows(a, b)
' 형식: rbind(a, b) '
- rbind 함수로 행을 결합하여 반환한다.
- rbind 함수로 행을 결합하기 위해서는 Data Frame의 열 개수, 칼럼 이름이 같아야 한다
a <- data.frame(id = c(1, 2, 3, 4, 5), score = c(60, 80, 70, 90, 85))
b <- data.frame(id = c(6, 7 , 8), score = c(80, 90, 85))
rbind(a, b)
세로
' 형식: bind_cols(dataframe1, dataframe2) '
- cbind 함수로 열을 결합하여 반환한다.
- cbind 함수로 열을 결합하기 위해서는 Data Frame의 행 개수가 서로 같아야 한다.
library(dplyr)
a <- data.frame(id = c(1, 2, 3, 4, 5), score = c(60, 80, 70, 90, 85)) b <- data.frame(id = c(3, 4, 5, 6, 7), weight = c(80, 90, 85, 60, 85)) # 세로로 결합한다.
bind_rows(a, b)
' 형식: cbind(a,b) '
a <- data.frame(id = c(1, 2, 3, 4, 5), score = c(60, 80, 70, 90, 85))
b <- data.frame(age = c(20, 19 , 20, 19, 21), weight = c(80, 90, 85, 60, 85))
cbind(a, b)
marge()
' 형식: merge(A, B, by = key, all = FALSE, all.x = all, all.y = all) 함수'
- merge 함수는 키를 기준으로 열을 결합하여 반환한다.
A
매개변수: 객체를 설정한다.B
매개변수: 객체를 설정한다.by
옵션: 결합할 기준이 되는 칼럼을 설정한다.all
옵션: 모든 열을 결합하며 기본값은 FALSE다.all.x
옵션: A 객체를 기준으로 열을 결합한다.all.y
옵션: B 객체를 기준으로 열을 결합한다.
rename()
' 형식: rename(데이터프레임, 변경후컬럼명 = 변경전컬럼명) '
' 형식: rename(데이터프레임, 변경후컬럼명 = 변경전컬럼명) '
-데이터프레임을 구성하는 컬럼명을 수정하는 rename()함수 사용
df <- data.frame(one = c(4, 3, 8))
df <- rename(df, "원" = one)
Author And Source
이 문제에 관하여(R 프로그래밍 _ 'dplyr' 패키지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yuhayung7296/R-프로그래밍-dplyr-패키지저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)