dply 패키지에 데이터를 무작위로 추출해주는 함수
- sample_frac() : 특정 비율만큼 무작위 추출
- sample_n(): 특정 개수만큼 무작위 추출
그 외에 R 내장 함수인 sample()도 같은 역할을 수행한다.
00. 데이터 불러오기
MASS 패키지의 내장 데이터 셋인 'cars93' 데이터 셋 사용
※ MASS 패키지의 select()함수와 'dplyr' 패키지의 select() 함수가 충돌하기 때문에 MASS 패키지를 먼저 불러온 후 dplyr 패키지를 불러와야 한다.
library(MASS)
library(dplyr)
df <- Cars93
df <- df %>% select(Manufacturer:Price) # 1~5열까지만 select / 93행 5열
01. 비복원 추출
- 옵션 replace = False인 경우 비복원 추출.
- sample_n(), sample_frac() 함수의 default 는 비복원추출
01-1. sample_n : 10개의 행 무작위 추출
# replace = F일 경우 비복원 추출
df %>% sample_n(size = 10, replace = F)
01-2. sample_frac : 전체 행의 10% 무작위 추출
df %>% sample_frac(size = 0.1, replace = F)
01-3 R 내장함수 sample() : 10개 행 무작위 추출
- sample(x, size, replace = False , prob = NULL)
set.seed(1234)
idx <- sample(1:nrow(df), size = 10, replace = F) # 10개의 인덱스가 랜덤으로 생성됨
# 랜덤으로 생성된 인덱스를 사용해 10개의 행 추출
df[idx,]
01-4. group에 따른 무작위 추출
- 변수 Type의 그룹별로 각 2개씩 무작위 비복원 추출
# sample_n() 사용
df %>% group_by(Type) %>%
sample_n(size = 2, replace = F)
02. 복원 추출
- 옵션 replace = True인 경우 복원 추출.
02-1. sample_n : 20개 행 무작위 복원 추출
df %>% sample_n(size = 20, replace = T)
02-2. sample_frac : 전체 행의 20% 무작위 복원 추출
df %>% sample_frac(size = 0.2, replace = T)
02-3 R 내장함수 sample() : 20개 행 무작위 복원 추출
- sample(x, size, replace = True , prob = NULL)
set.seed(1234)
idx <- sample(1:nrow(df), size = 20, replace = T)
df[idx,]
02-4. group에 따른 무작위 복원 추출
- 변수 Type의 그룹별로 각 2개씩 무작위 복원추출
df %>% sample_n(size = 20, replace = T)
참고 문헌(reference)
참고 서적 / 위키북스|Must Learning with R (개정판)
https://wikidocs.net/book/4315
Must Learning with R (개정판)
MustLearning with R 개정판입니다. 기존 제작한 책에서 다시 만들려고 했으나, 책의 구성이 어느정도 바뀐 부분도 있기 때문에 다시 새롭게 구성을 하였습…
wikidocs.net
참고 블로그
https://rfriend.tistory.com/235
'R > dplyr' 카테고리의 다른 글
R | dplyr | 그 외 데이터 추출 - slice() , top_n() (0) | 2023.01.02 |
---|---|
R | dplyr | mutate, mutate_if , mutate_at - 새로운 변수 생성 및 처리 (1) | 2022.12.28 |
R | dplyr | 변수 추출 select(), select_if() (0) | 2022.12.15 |
R | dplyr | 데이터 정렬(arrange) (0) | 2022.12.09 |
R | dplyr | 조건에 맞는 행 추출(filter) (0) | 2022.12.09 |