8. Sampling


r

Overview

R에서 일부 표본을 샘플링하는 방법을 알아본다.


Sampling 함수

수 많은 데이터 중 일부의 표본만 가져와 분석할 수 있게 하기 위해 sampling() 함수를 사용한다.


사용 예시

Data는 kaggle의 데이터를 사용하였다.

abcCsv <- read.csv('Border_Crossing_Entry_Data.csv', header=T)
abcCsv
dim(abcCsv) # dimension
nrow(abcCsv) # 몇행인가요?
ncol(abcCsv) # 몇열인가요?

# 샘플링 방법
# nrow 함수는 전체 행의 개수를 구해주는 함수이다.
# 1행 ~전체 행수에서 임의의 10%의 데이터를 무작위로 추출한다.
choice1 <- sample(0.1 * nrow(abcCsv))
choice1

abcCsv[choice1,]

# 3행 ~전체 행수에서 임의의 2개의 데이터를 무작위로 추출한다.
choice2 <- sample(3:nrow(abcCsv), 2)
choice2
# [1] 5 4

# 2행 ~ 6행 중에서 임의의 2개의 데이터를 무작위로 추출한다.
choice3 <- sample(c(2:6), 2)
choice3
# [1] 3 6

choice3 <- sample(c(2:6), 2)
choice3
# [1] 5 3

choice3 <- sample(c(2:6), 2)
choice3
# [1] 5 4

choice3 <- sample(c(2:6), 2)
choice3
# [1] 2 6

실행 결과

> abcCsv <- read.csv('Border_Crossing_Entry_Data.csv', header=T)
> abcCsv
  Port.Name        State   Port.Code      Border                   Date
1 Calexico East California 2507 US-Mexico Border 03/01/2019 12:00:00 AM
2 Van Buren     Maine      108 US-Canada  Border 03/01/2019 12:00:00 AM
~~~~~~~~~~~~~~~~
 [ reached 'max' / getOption("max.print") -- omitted 346608 rows ]
 > dim(abcCsv) # dimension
[1] 346733      8
> nrow(abcCsv) # 몇행인가요?
[1] 346733
> ncol(abcCsv) # 몇열인가요?
[1] 8
> 
> # 샘플링 방법
> # nrow 함수는 전체 행의 개수를 구해주는 함수이다.
> # 1행 ~전체 행수에서 임의의 10%의 데이터를 무작위로 추출한다.
> choice1 <- sample(0.1 * nrow(abcCsv))
> choice1
   [1] 31731  9951    80 26794 32230  4782 11524 26748 32219 12752 18420 24277 11444 20657 21282  1880 32647 27027
  [19]  8185 30779  2096 18313 27693 20817 14919   627 23301 30214 17183 22023 18055 10436 10186 30542  5377 24085
~~~~~~~~~~~~~~~~~~~
> 
> abcCsv[choice1,]
        Port.Name     State       Port.Code Border Date
31731   Port Angeles  Washington  3007 US-Canada Border 03/01/2016 12:00:00 AM
9951    Grand Portage Minnesota   3613 US-Canada Border 03/01/2018 12:00:00 AM
80      Roseau        Minnesota   3426 US-Canada Border 03/01/2019 12:00:00 AM
~~~~~~~~~~~~~~~~~~~
> 
> # 3행 ~전체 행수에서 임의의 2개의 데이터를 무작위로 추출한다.
> choice2 <- sample(3:nrow(abcCsv), 2)
> choice2
[1]  30142 234186
> # [1] 5 4
> 
> # 2행 ~ 6행 중에서 임의의 2개의 데이터를 무작위로 추출한다.
> choice3 <- sample(c(2:6), 2)
> choice3
[1] 4 6
> # [1] 3 6
> 
> choice3 <- sample(c(2:6), 2)
> choice3
[1] 4 5
> # [1] 5 3
> 
> choice3 <- sample(c(2:6), 2)
> choice3
[1] 3 6
> # [1] 5 4
> 
> choice3 <- sample(c(2:6), 2)
> choice3
[1] 3 6
> # [1] 2 6
> 





© 2019. by RaP0d

Powered by aiden