반응형
샘플링(sampling)
많은 데이터 중 일부를 선택해야 할 때가 있습니다. 그 경우에 처리하는 기술을 샘플링이라고 합니다. 비복원 추출을 통해 중복되지 않은 랜덤한 값을 추출할 수 있습니다.
x <- 1:100
# x 에서 10개의 수를 임의로 추출 (비복원 추출)
y <- sample(x, size=10, replace = FALSE)
y
# [1] 37 43 18 95 29 51 52 28 88 67
데이터에서 임의의 행을 추출할 수 있습니다. 아래 예제를 참고하세요. replace의 기본값은 FALSE입니다.
# iris 에서 50개의 행(row)을 임의로 추출 (비복원 추출)
idx <- sample(nrow(iris), size=50,
replace = FALSE)
iris.50 <- iris[idx,]
head(iris.50)
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 88 6.3 2.3 4.4 1.3 versicolor
# 87 6.7 3.1 4.7 1.5 versicolor
# 1 5.1 3.5 1.4 0.2 setosa
# 96 5.7 3.0 4.2 1.2 versicolor
# 118 7.7 3.8 6.7 2.2 virginica
# 75 6.4 2.9 4.3 1.3 versicolor
조합(combination)
combn 함수를 통해 조합을 만들 수 있습니다. 아래 예제를 참고해보세요. 경우의 수를 만들어주어 원하는 데이터를 만들어낼 수 있습니다.
combn(5,3) # 5개중 3개를 뽑는 조합
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
# [1,] 1 1 1 1 1 1 2 2 2 3
# [2,] 2 2 2 3 3 4 3 3 4 4
# [3,] 3 4 5 4 5 5 4 5 5 5
x = c("red","green","blue","black","white")
com <- combn(x,2) # x 의 원소를 2개씩 뽑는 조합
com
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
# [1,] "red" "red" "red" "red" "green" "green" "green" "blue" "blue"
# [2,] "green" "blue" "black" "white" "blue" "black" "white" "black" "white"
# [,10]
# [1,] "black"
# [2,] "white"
for(i in 1:ncol(com)) {
cat(com[,i], "\n")
}
# red green
# red blue
# red black
# red white
# green blue
# green black
# green white
# blue black
# blue white
# black white
반응형
'SW > R' 카테고리의 다른 글
R : 벡터 정렬 (개념 및 예제) (0) | 2019.03.02 |
---|---|
R : aggregate, attach, detach-데이터 요약 (개념 및 예제) (0) | 2019.03.01 |
R : 분리(split), 선택(subset)-전처리 (개념 및 예제) (0) | 2019.02.27 |
R : ggplot (개념 및 예제) (0) | 2019.02.26 |
R : 모자이크 플롯-mosaic plot (개념 및 예제) (0) | 2019.02.25 |