결측값의 확인
x <- c(1,2,NA,10,3)
is.na(x)
## [1] FALSE FALSE TRUE FALSE FALSE
is.nan(x)
## [1] FALSE FALSE FALSE FALSE FALSE
x <- c(1,2,NaN, NA,4)
is.na(x)
## [1] FALSE FALSE TRUE TRUE FALSE
is.nan(x)
## [1] FALSE FALSE TRUE FALSE FALSE
airquality[1:6,]
## Ozone Solar.R Wind Temp Month Day
## 1 41 190 7.4 67 5 1
## 2 36 118 8.0 72 5 2
## 3 12 149 12.6 74 5 3
## 4 18 313 11.5 62 5 4
## 5 NA NA 14.3 56 5 5
## 6 28 NA 14.9 66 5 6
is.na(airquality[1:6,])
## Ozone Solar.R Wind Temp Month Day
## 1 FALSE FALSE FALSE FALSE FALSE FALSE
## 2 FALSE FALSE FALSE FALSE FALSE FALSE
## 3 FALSE FALSE FALSE FALSE FALSE FALSE
## 4 FALSE FALSE FALSE FALSE FALSE FALSE
## 5 TRUE TRUE FALSE FALSE FALSE FALSE
## 6 FALSE TRUE FALSE FALSE FALSE FALSE
7-1 결측값의 특성과 존재 여부 확인 : is.na() 그리고 sum()을 조합
z <- c(1,2,3,NA,5,NA,8) # 결측값이 포함된 벡터 z
sum(z) # 정상 계산이 안됨
## [1] NA
is.na(z) # NA 여부 확인
## [1] FALSE FALSE FALSE TRUE FALSE TRUE FALSE
sum(is.na(z)) # NA의 개수 확인
## [1] 2
sum(z, na.rm=TRUE) # NA를 제외하고 합계를 계산
## [1] 19
# 결측값의 제거 : is.na()를 이용한 논리 인덱싱
x <- c(1,2,NA,4,NA,5)
bad <- is.na(x)
x[!bad]
## [1] 1 2 4 5
# 참고
airquality[1:6,]
## Ozone Solar.R Wind Temp Month Day
## 1 41 190 7.4 67 5 1
## 2 36 118 8.0 72 5 2
## 3 12 149 12.6 74 5 3
## 4 18 313 11.5 62 5 4
## 5 NA NA 14.3 56 5 5
## 6 28 NA 14.9 66 5 6
is.na(airquality[1:6,])
## Ozone Solar.R Wind Temp Month Day
## 1 FALSE FALSE FALSE FALSE FALSE FALSE
## 2 FALSE FALSE FALSE FALSE FALSE FALSE
## 3 FALSE FALSE FALSE FALSE FALSE FALSE
## 4 FALSE FALSE FALSE FALSE FALSE FALSE
## 5 TRUE TRUE FALSE FALSE FALSE FALSE
## 6 FALSE TRUE FALSE FALSE FALSE FALSE
7-2 결측값 대체 및 제거 : na.omit()을 이용하는 경우
z1 <- c(1,2,3,NA,5,NA,8) # 결측값이 포함된 벡터 z1
z2 <- c(5,8,1,NA,3,NA,7) # 결측값이 포함된 벡터 z2
z1[is.na(z1)] <- 0 # NA를 0으로 치환
z1
## [1] 1 2 3 0 5 0 8
na.omit(z2)
## [1] 5 8 1 3 7
## attr(,"na.action")
## [1] 4 6
## attr(,"class")
## [1] "omit"
z3 <- as.vector(na.omit(z2)) # NA를 제거하고 새로운 벡터 생성
z3
## [1] 5 8 1 3 7
결측값의 제거 : complete.cases()를 이용하는 경우
x <- c(1,2, NA,4, NA, 5)
y <- c("a","b",NA,"d",NA,"f")
good <- complete.cases(x,y)
good
## [1] TRUE TRUE FALSE TRUE FALSE TRUE
x[good]
## [1] 1 2 4 5
y[good]
## [1] "a" "b" "d" "f"
airquality[1:6,]
## Ozone Solar.R Wind Temp Month Day
## 1 41 190 7.4 67 5 1
## 2 36 118 8.0 72 5 2
## 3 12 149 12.6 74 5 3
## 4 18 313 11.5 62 5 4
## 5 NA NA 14.3 56 5 5
## 6 28 NA 14.9 66 5 6
good <- complete.cases(airquality[1:6,])
good
## [1] TRUE TRUE TRUE TRUE FALSE FALSE
# 방법 1 complete.cases를 이용한 결측값(행) 제거
good <- complete.cases(airquality)
airquality[good,][1:6,]
## Ozone Solar.R Wind Temp Month Day
## 1 41 190 7.4 67 5 1
## 2 36 118 8.0 72 5 2
## 3 12 149 12.6 74 5 3
## 4 18 313 11.5 62 5 4
## 7 23 299 8.6 65 5 7
## 8 19 99 13.8 59 5 8
# 방법 2 na.omit()을 이용하는 경우
na.omit(airquality)[1:6,]
## Ozone Solar.R Wind Temp Month Day
## 1 41 190 7.4 67 5 1
## 2 36 118 8.0 72 5 2
## 3 12 149 12.6 74 5 3
## 4 18 313 11.5 62 5 4
## 7 23 299 8.6 65 5 7
## 8 19 99 13.8 59 5 8
7-3
# NA를 포함하는 test 데이터 생성
x <- iris
x[1,2]<- NA; x[1,3]<- NA
x[2,3]<- NA; x[3,4]<- NA
head(x)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 NA NA 0.2 setosa
## 2 4.9 3.0 NA 0.2 setosa
## 3 4.7 3.2 1.3 NA setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
7-4
# is.na()와 colSums()을 이용한 방법
colSums(is.na(x))
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 0 1 2 1 0
# for문을 이용한 방법
for (i in 1:ncol(x)) {
this.na <- is.na(x[,i])
cat(colnames(x)[i], "\t", sum(this.na), "\n")
}
## Sepal.Length 0
## Sepal.Width 1
## Petal.Length 2
## Petal.Width 1
## Species 0
# apply 반복함수를 이용하는 방법
col_na <- function(y) {
return(sum(is.na(y)))
}
na_count <-apply(x, 2, FUN=col_na)
na_count
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 0 1 2 1 0
7-5
rowSums(is.na(x)) # 행별 NA의 개수
## [1] 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## [38] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## [75] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## [112] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## [149] 0 0
sum(rowSums(is.na(x))>0) # NA가 포함된 행의 개수
## [1] 3
sum(is.na(x)) # 데이터셋 전체에서 NA 개수
## [1] 4
7-6
head(x)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 NA NA 0.2 setosa
## 2 4.9 3.0 NA 0.2 setosa
## 3 4.7 3.2 1.3 NA setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
x[!complete.cases(x),] # NA가 포함된 행들 출력
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 NA NA 0.2 setosa
## 2 4.9 3.0 NA 0.2 setosa
## 3 4.7 3.2 1.3 NA setosa
y <- x[complete.cases(x),] # NA가 포함된 행들 제거
head(y) # 새로운 데이터셋 y의 내용 확인
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
## 7 4.6 3.4 1.4 0.3 setosa
## 8 5.0 3.4 1.5 0.2 setosa
## 9 4.4 2.9 1.4 0.2 setosa
7-7
st <- data.frame(state.x77)
boxplot(st$Income)

boxplot.stats(st$Income)$out
## [1] 6315
7-8
out.val <- boxplot.stats(st$Income)$out # 특이값 추출
st$Income[st$Income %in% out.val] <- NA # 특이값을 NA로 대체
head(st)
## Population Income Illiteracy Life.Exp Murder HS.Grad Frost Area
## Alabama 3615 3624 2.1 69.05 15.1 41.3 20 50708
## Alaska 365 NA 1.5 69.31 11.3 66.7 152 566432
## Arizona 2212 4530 1.8 70.55 7.8 58.1 15 113417
## Arkansas 2110 3378 1.9 70.66 10.1 39.9 65 51945
## California 21198 5114 1.1 71.71 10.3 62.6 20 156361
## Colorado 2541 4884 0.7 72.06 6.8 63.9 166 103766
newdata <- st[complete.cases(st),] # NA가 포함된 행 제거
head(newdata)
## Population Income Illiteracy Life.Exp Murder HS.Grad Frost Area
## Alabama 3615 3624 2.1 69.05 15.1 41.3 20 50708
## Arizona 2212 4530 1.8 70.55 7.8 58.1 15 113417
## Arkansas 2110 3378 1.9 70.66 10.1 39.9 65 51945
## California 21198 5114 1.1 71.71 10.3 62.6 20 156361
## Colorado 2541 4884 0.7 72.06 6.8 63.9 166 103766
## Connecticut 3100 5348 1.1 72.48 3.1 56.0 139 4862
7-9
v1 <- c(1,7,6,8,4,2,3)
order(v1)
## [1] 1 6 7 5 3 2 4
v1 <- sort(v1) # 오름차순
v1
## [1] 1 2 3 4 6 7 8
v2 <- sort(v1, decreasing=T) # 내림차순
v2
## [1] 8 7 6 4 3 2 1
7-10
head(iris)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
order(iris$Sepal.Length)
## [1] 14 9 39 43 42 4 7 23 48 3 30 12 13 25 31 46 2 10
## [19] 35 38 58 107 5 8 26 27 36 41 44 50 61 94 1 18 20 22
## [37] 24 40 45 47 99 28 29 33 60 49 6 11 17 21 32 85 34 37
## [55] 54 81 82 90 91 65 67 70 89 95 122 16 19 56 80 96 97 100
## [73] 114 15 68 83 93 102 115 143 62 71 150 63 79 84 86 120 139 64
## [91] 72 74 92 128 135 69 98 127 149 57 73 88 101 104 124 134 137 147
## [109] 52 75 112 116 129 133 138 55 105 111 117 148 59 76 66 78 87 109
## [127] 125 141 145 146 77 113 144 53 121 140 142 51 103 110 126 130 108 131
## [145] 106 118 119 123 136 132
iris[order(iris$Sepal.Length),] # 오름차순으로 정렬
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 14 4.3 3.0 1.1 0.1 setosa
## 9 4.4 2.9 1.4 0.2 setosa
## 39 4.4 3.0 1.3 0.2 setosa
## 43 4.4 3.2 1.3 0.2 setosa
## 42 4.5 2.3 1.3 0.3 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 7 4.6 3.4 1.4 0.3 setosa
## 23 4.6 3.6 1.0 0.2 setosa
## 48 4.6 3.2 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 30 4.7 3.2 1.6 0.2 setosa
## 12 4.8 3.4 1.6 0.2 setosa
## 13 4.8 3.0 1.4 0.1 setosa
## 25 4.8 3.4 1.9 0.2 setosa
## 31 4.8 3.1 1.6 0.2 setosa
## 46 4.8 3.0 1.4 0.3 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 10 4.9 3.1 1.5 0.1 setosa
## 35 4.9 3.1 1.5 0.2 setosa
## 38 4.9 3.6 1.4 0.1 setosa
## 58 4.9 2.4 3.3 1.0 versicolor
## 107 4.9 2.5 4.5 1.7 virginica
## 5 5.0 3.6 1.4 0.2 setosa
## 8 5.0 3.4 1.5 0.2 setosa
## 26 5.0 3.0 1.6 0.2 setosa
## 27 5.0 3.4 1.6 0.4 setosa
## 36 5.0 3.2 1.2 0.2 setosa
## 41 5.0 3.5 1.3 0.3 setosa
## 44 5.0 3.5 1.6 0.6 setosa
## 50 5.0 3.3 1.4 0.2 setosa
## 61 5.0 2.0 3.5 1.0 versicolor
## 94 5.0 2.3 3.3 1.0 versicolor
## 1 5.1 3.5 1.4 0.2 setosa
## 18 5.1 3.5 1.4 0.3 setosa
## 20 5.1 3.8 1.5 0.3 setosa
## 22 5.1 3.7 1.5 0.4 setosa
## 24 5.1 3.3 1.7 0.5 setosa
## 40 5.1 3.4 1.5 0.2 setosa
## 45 5.1 3.8 1.9 0.4 setosa
## 47 5.1 3.8 1.6 0.2 setosa
## 99 5.1 2.5 3.0 1.1 versicolor
## 28 5.2 3.5 1.5 0.2 setosa
## 29 5.2 3.4 1.4 0.2 setosa
## 33 5.2 4.1 1.5 0.1 setosa
## 60 5.2 2.7 3.9 1.4 versicolor
## 49 5.3 3.7 1.5 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
## 11 5.4 3.7 1.5 0.2 setosa
## 17 5.4 3.9 1.3 0.4 setosa
## 21 5.4 3.4 1.7 0.2 setosa
## 32 5.4 3.4 1.5 0.4 setosa
## 85 5.4 3.0 4.5 1.5 versicolor
## 34 5.5 4.2 1.4 0.2 setosa
## 37 5.5 3.5 1.3 0.2 setosa
## 54 5.5 2.3 4.0 1.3 versicolor
## 81 5.5 2.4 3.8 1.1 versicolor
## 82 5.5 2.4 3.7 1.0 versicolor
## 90 5.5 2.5 4.0 1.3 versicolor
## 91 5.5 2.6 4.4 1.2 versicolor
## 65 5.6 2.9 3.6 1.3 versicolor
## 67 5.6 3.0 4.5 1.5 versicolor
## 70 5.6 2.5 3.9 1.1 versicolor
## 89 5.6 3.0 4.1 1.3 versicolor
## 95 5.6 2.7 4.2 1.3 versicolor
## 122 5.6 2.8 4.9 2.0 virginica
## 16 5.7 4.4 1.5 0.4 setosa
## 19 5.7 3.8 1.7 0.3 setosa
## 56 5.7 2.8 4.5 1.3 versicolor
## 80 5.7 2.6 3.5 1.0 versicolor
## 96 5.7 3.0 4.2 1.2 versicolor
## 97 5.7 2.9 4.2 1.3 versicolor
## 100 5.7 2.8 4.1 1.3 versicolor
## 114 5.7 2.5 5.0 2.0 virginica
## 15 5.8 4.0 1.2 0.2 setosa
## 68 5.8 2.7 4.1 1.0 versicolor
## 83 5.8 2.7 3.9 1.2 versicolor
## 93 5.8 2.6 4.0 1.2 versicolor
## 102 5.8 2.7 5.1 1.9 virginica
## 115 5.8 2.8 5.1 2.4 virginica
## 143 5.8 2.7 5.1 1.9 virginica
## 62 5.9 3.0 4.2 1.5 versicolor
## 71 5.9 3.2 4.8 1.8 versicolor
## 150 5.9 3.0 5.1 1.8 virginica
## 63 6.0 2.2 4.0 1.0 versicolor
## 79 6.0 2.9 4.5 1.5 versicolor
## 84 6.0 2.7 5.1 1.6 versicolor
## 86 6.0 3.4 4.5 1.6 versicolor
## 120 6.0 2.2 5.0 1.5 virginica
## 139 6.0 3.0 4.8 1.8 virginica
## 64 6.1 2.9 4.7 1.4 versicolor
## 72 6.1 2.8 4.0 1.3 versicolor
## 74 6.1 2.8 4.7 1.2 versicolor
## 92 6.1 3.0 4.6 1.4 versicolor
## 128 6.1 3.0 4.9 1.8 virginica
## 135 6.1 2.6 5.6 1.4 virginica
## 69 6.2 2.2 4.5 1.5 versicolor
## 98 6.2 2.9 4.3 1.3 versicolor
## 127 6.2 2.8 4.8 1.8 virginica
## 149 6.2 3.4 5.4 2.3 virginica
## 57 6.3 3.3 4.7 1.6 versicolor
## 73 6.3 2.5 4.9 1.5 versicolor
## 88 6.3 2.3 4.4 1.3 versicolor
## 101 6.3 3.3 6.0 2.5 virginica
## 104 6.3 2.9 5.6 1.8 virginica
## 124 6.3 2.7 4.9 1.8 virginica
## 134 6.3 2.8 5.1 1.5 virginica
## 137 6.3 3.4 5.6 2.4 virginica
## 147 6.3 2.5 5.0 1.9 virginica
## 52 6.4 3.2 4.5 1.5 versicolor
## 75 6.4 2.9 4.3 1.3 versicolor
## 112 6.4 2.7 5.3 1.9 virginica
## 116 6.4 3.2 5.3 2.3 virginica
## 129 6.4 2.8 5.6 2.1 virginica
## 133 6.4 2.8 5.6 2.2 virginica
## 138 6.4 3.1 5.5 1.8 virginica
## 55 6.5 2.8 4.6 1.5 versicolor
## 105 6.5 3.0 5.8 2.2 virginica
## 111 6.5 3.2 5.1 2.0 virginica
## 117 6.5 3.0 5.5 1.8 virginica
## 148 6.5 3.0 5.2 2.0 virginica
## 59 6.6 2.9 4.6 1.3 versicolor
## 76 6.6 3.0 4.4 1.4 versicolor
## 66 6.7 3.1 4.4 1.4 versicolor
## 78 6.7 3.0 5.0 1.7 versicolor
## 87 6.7 3.1 4.7 1.5 versicolor
## 109 6.7 2.5 5.8 1.8 virginica
## 125 6.7 3.3 5.7 2.1 virginica
## 141 6.7 3.1 5.6 2.4 virginica
## 145 6.7 3.3 5.7 2.5 virginica
## 146 6.7 3.0 5.2 2.3 virginica
## 77 6.8 2.8 4.8 1.4 versicolor
## 113 6.8 3.0 5.5 2.1 virginica
## 144 6.8 3.2 5.9 2.3 virginica
## 53 6.9 3.1 4.9 1.5 versicolor
## 121 6.9 3.2 5.7 2.3 virginica
## 140 6.9 3.1 5.4 2.1 virginica
## 142 6.9 3.1 5.1 2.3 virginica
## 51 7.0 3.2 4.7 1.4 versicolor
## 103 7.1 3.0 5.9 2.1 virginica
## 110 7.2 3.6 6.1 2.5 virginica
## 126 7.2 3.2 6.0 1.8 virginica
## 130 7.2 3.0 5.8 1.6 virginica
## 108 7.3 2.9 6.3 1.8 virginica
## 131 7.4 2.8 6.1 1.9 virginica
## 106 7.6 3.0 6.6 2.1 virginica
## 118 7.7 3.8 6.7 2.2 virginica
## 119 7.7 2.6 6.9 2.3 virginica
## 123 7.7 2.8 6.7 2.0 virginica
## 136 7.7 3.0 6.1 2.3 virginica
## 132 7.9 3.8 6.4 2.0 virginica
iris[order(iris$Sepal.Length, decreasing=T),] # 내림차순으로 정렬
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 132 7.9 3.8 6.4 2.0 virginica
## 118 7.7 3.8 6.7 2.2 virginica
## 119 7.7 2.6 6.9 2.3 virginica
## 123 7.7 2.8 6.7 2.0 virginica
## 136 7.7 3.0 6.1 2.3 virginica
## 106 7.6 3.0 6.6 2.1 virginica
## 131 7.4 2.8 6.1 1.9 virginica
## 108 7.3 2.9 6.3 1.8 virginica
## 110 7.2 3.6 6.1 2.5 virginica
## 126 7.2 3.2 6.0 1.8 virginica
## 130 7.2 3.0 5.8 1.6 virginica
## 103 7.1 3.0 5.9 2.1 virginica
## 51 7.0 3.2 4.7 1.4 versicolor
## 53 6.9 3.1 4.9 1.5 versicolor
## 121 6.9 3.2 5.7 2.3 virginica
## 140 6.9 3.1 5.4 2.1 virginica
## 142 6.9 3.1 5.1 2.3 virginica
## 77 6.8 2.8 4.8 1.4 versicolor
## 113 6.8 3.0 5.5 2.1 virginica
## 144 6.8 3.2 5.9 2.3 virginica
## 66 6.7 3.1 4.4 1.4 versicolor
## 78 6.7 3.0 5.0 1.7 versicolor
## 87 6.7 3.1 4.7 1.5 versicolor
## 109 6.7 2.5 5.8 1.8 virginica
## 125 6.7 3.3 5.7 2.1 virginica
## 141 6.7 3.1 5.6 2.4 virginica
## 145 6.7 3.3 5.7 2.5 virginica
## 146 6.7 3.0 5.2 2.3 virginica
## 59 6.6 2.9 4.6 1.3 versicolor
## 76 6.6 3.0 4.4 1.4 versicolor
## 55 6.5 2.8 4.6 1.5 versicolor
## 105 6.5 3.0 5.8 2.2 virginica
## 111 6.5 3.2 5.1 2.0 virginica
## 117 6.5 3.0 5.5 1.8 virginica
## 148 6.5 3.0 5.2 2.0 virginica
## 52 6.4 3.2 4.5 1.5 versicolor
## 75 6.4 2.9 4.3 1.3 versicolor
## 112 6.4 2.7 5.3 1.9 virginica
## 116 6.4 3.2 5.3 2.3 virginica
## 129 6.4 2.8 5.6 2.1 virginica
## 133 6.4 2.8 5.6 2.2 virginica
## 138 6.4 3.1 5.5 1.8 virginica
## 57 6.3 3.3 4.7 1.6 versicolor
## 73 6.3 2.5 4.9 1.5 versicolor
## 88 6.3 2.3 4.4 1.3 versicolor
## 101 6.3 3.3 6.0 2.5 virginica
## 104 6.3 2.9 5.6 1.8 virginica
## 124 6.3 2.7 4.9 1.8 virginica
## 134 6.3 2.8 5.1 1.5 virginica
## 137 6.3 3.4 5.6 2.4 virginica
## 147 6.3 2.5 5.0 1.9 virginica
## 69 6.2 2.2 4.5 1.5 versicolor
## 98 6.2 2.9 4.3 1.3 versicolor
## 127 6.2 2.8 4.8 1.8 virginica
## 149 6.2 3.4 5.4 2.3 virginica
## 64 6.1 2.9 4.7 1.4 versicolor
## 72 6.1 2.8 4.0 1.3 versicolor
## 74 6.1 2.8 4.7 1.2 versicolor
## 92 6.1 3.0 4.6 1.4 versicolor
## 128 6.1 3.0 4.9 1.8 virginica
## 135 6.1 2.6 5.6 1.4 virginica
## 63 6.0 2.2 4.0 1.0 versicolor
## 79 6.0 2.9 4.5 1.5 versicolor
## 84 6.0 2.7 5.1 1.6 versicolor
## 86 6.0 3.4 4.5 1.6 versicolor
## 120 6.0 2.2 5.0 1.5 virginica
## 139 6.0 3.0 4.8 1.8 virginica
## 62 5.9 3.0 4.2 1.5 versicolor
## 71 5.9 3.2 4.8 1.8 versicolor
## 150 5.9 3.0 5.1 1.8 virginica
## 15 5.8 4.0 1.2 0.2 setosa
## 68 5.8 2.7 4.1 1.0 versicolor
## 83 5.8 2.7 3.9 1.2 versicolor
## 93 5.8 2.6 4.0 1.2 versicolor
## 102 5.8 2.7 5.1 1.9 virginica
## 115 5.8 2.8 5.1 2.4 virginica
## 143 5.8 2.7 5.1 1.9 virginica
## 16 5.7 4.4 1.5 0.4 setosa
## 19 5.7 3.8 1.7 0.3 setosa
## 56 5.7 2.8 4.5 1.3 versicolor
## 80 5.7 2.6 3.5 1.0 versicolor
## 96 5.7 3.0 4.2 1.2 versicolor
## 97 5.7 2.9 4.2 1.3 versicolor
## 100 5.7 2.8 4.1 1.3 versicolor
## 114 5.7 2.5 5.0 2.0 virginica
## 65 5.6 2.9 3.6 1.3 versicolor
## 67 5.6 3.0 4.5 1.5 versicolor
## 70 5.6 2.5 3.9 1.1 versicolor
## 89 5.6 3.0 4.1 1.3 versicolor
## 95 5.6 2.7 4.2 1.3 versicolor
## 122 5.6 2.8 4.9 2.0 virginica
## 34 5.5 4.2 1.4 0.2 setosa
## 37 5.5 3.5 1.3 0.2 setosa
## 54 5.5 2.3 4.0 1.3 versicolor
## 81 5.5 2.4 3.8 1.1 versicolor
## 82 5.5 2.4 3.7 1.0 versicolor
## 90 5.5 2.5 4.0 1.3 versicolor
## 91 5.5 2.6 4.4 1.2 versicolor
## 6 5.4 3.9 1.7 0.4 setosa
## 11 5.4 3.7 1.5 0.2 setosa
## 17 5.4 3.9 1.3 0.4 setosa
## 21 5.4 3.4 1.7 0.2 setosa
## 32 5.4 3.4 1.5 0.4 setosa
## 85 5.4 3.0 4.5 1.5 versicolor
## 49 5.3 3.7 1.5 0.2 setosa
## 28 5.2 3.5 1.5 0.2 setosa
## 29 5.2 3.4 1.4 0.2 setosa
## 33 5.2 4.1 1.5 0.1 setosa
## 60 5.2 2.7 3.9 1.4 versicolor
## 1 5.1 3.5 1.4 0.2 setosa
## 18 5.1 3.5 1.4 0.3 setosa
## 20 5.1 3.8 1.5 0.3 setosa
## 22 5.1 3.7 1.5 0.4 setosa
## 24 5.1 3.3 1.7 0.5 setosa
## 40 5.1 3.4 1.5 0.2 setosa
## 45 5.1 3.8 1.9 0.4 setosa
## 47 5.1 3.8 1.6 0.2 setosa
## 99 5.1 2.5 3.0 1.1 versicolor
## 5 5.0 3.6 1.4 0.2 setosa
## 8 5.0 3.4 1.5 0.2 setosa
## 26 5.0 3.0 1.6 0.2 setosa
## 27 5.0 3.4 1.6 0.4 setosa
## 36 5.0 3.2 1.2 0.2 setosa
## 41 5.0 3.5 1.3 0.3 setosa
## 44 5.0 3.5 1.6 0.6 setosa
## 50 5.0 3.3 1.4 0.2 setosa
## 61 5.0 2.0 3.5 1.0 versicolor
## 94 5.0 2.3 3.3 1.0 versicolor
## 2 4.9 3.0 1.4 0.2 setosa
## 10 4.9 3.1 1.5 0.1 setosa
## 35 4.9 3.1 1.5 0.2 setosa
## 38 4.9 3.6 1.4 0.1 setosa
## 58 4.9 2.4 3.3 1.0 versicolor
## 107 4.9 2.5 4.5 1.7 virginica
## 12 4.8 3.4 1.6 0.2 setosa
## 13 4.8 3.0 1.4 0.1 setosa
## 25 4.8 3.4 1.9 0.2 setosa
## 31 4.8 3.1 1.6 0.2 setosa
## 46 4.8 3.0 1.4 0.3 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 30 4.7 3.2 1.6 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 7 4.6 3.4 1.4 0.3 setosa
## 23 4.6 3.6 1.0 0.2 setosa
## 48 4.6 3.2 1.4 0.2 setosa
## 42 4.5 2.3 1.3 0.3 setosa
## 9 4.4 2.9 1.4 0.2 setosa
## 39 4.4 3.0 1.3 0.2 setosa
## 43 4.4 3.2 1.3 0.2 setosa
## 14 4.3 3.0 1.1 0.1 setosa
iris.new <- iris[order(iris$Sepal.Length),] # 정렬된 데이터를 저장
head(iris.new)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 14 4.3 3.0 1.1 0.1 setosa
## 9 4.4 2.9 1.4 0.2 setosa
## 39 4.4 3.0 1.3 0.2 setosa
## 43 4.4 3.2 1.3 0.2 setosa
## 42 4.5 2.3 1.3 0.3 setosa
## 4 4.6 3.1 1.5 0.2 setosa
iris[order(iris$Species, iris$Petal.Length,decreasing=T),] # 정렬 기준이 2개
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 119 7.7 2.6 6.9 2.3 virginica
## 118 7.7 3.8 6.7 2.2 virginica
## 123 7.7 2.8 6.7 2.0 virginica
## 106 7.6 3.0 6.6 2.1 virginica
## 132 7.9 3.8 6.4 2.0 virginica
## 108 7.3 2.9 6.3 1.8 virginica
## 110 7.2 3.6 6.1 2.5 virginica
## 131 7.4 2.8 6.1 1.9 virginica
## 136 7.7 3.0 6.1 2.3 virginica
## 101 6.3 3.3 6.0 2.5 virginica
## 126 7.2 3.2 6.0 1.8 virginica
## 103 7.1 3.0 5.9 2.1 virginica
## 144 6.8 3.2 5.9 2.3 virginica
## 105 6.5 3.0 5.8 2.2 virginica
## 109 6.7 2.5 5.8 1.8 virginica
## 130 7.2 3.0 5.8 1.6 virginica
## 121 6.9 3.2 5.7 2.3 virginica
## 125 6.7 3.3 5.7 2.1 virginica
## 145 6.7 3.3 5.7 2.5 virginica
## 104 6.3 2.9 5.6 1.8 virginica
## 129 6.4 2.8 5.6 2.1 virginica
## 133 6.4 2.8 5.6 2.2 virginica
## 135 6.1 2.6 5.6 1.4 virginica
## 137 6.3 3.4 5.6 2.4 virginica
## 141 6.7 3.1 5.6 2.4 virginica
## 113 6.8 3.0 5.5 2.1 virginica
## 117 6.5 3.0 5.5 1.8 virginica
## 138 6.4 3.1 5.5 1.8 virginica
## 140 6.9 3.1 5.4 2.1 virginica
## 149 6.2 3.4 5.4 2.3 virginica
## 112 6.4 2.7 5.3 1.9 virginica
## 116 6.4 3.2 5.3 2.3 virginica
## 146 6.7 3.0 5.2 2.3 virginica
## 148 6.5 3.0 5.2 2.0 virginica
## 102 5.8 2.7 5.1 1.9 virginica
## 111 6.5 3.2 5.1 2.0 virginica
## 115 5.8 2.8 5.1 2.4 virginica
## 134 6.3 2.8 5.1 1.5 virginica
## 142 6.9 3.1 5.1 2.3 virginica
## 143 5.8 2.7 5.1 1.9 virginica
## 150 5.9 3.0 5.1 1.8 virginica
## 114 5.7 2.5 5.0 2.0 virginica
## 120 6.0 2.2 5.0 1.5 virginica
## 147 6.3 2.5 5.0 1.9 virginica
## 122 5.6 2.8 4.9 2.0 virginica
## 124 6.3 2.7 4.9 1.8 virginica
## 128 6.1 3.0 4.9 1.8 virginica
## 127 6.2 2.8 4.8 1.8 virginica
## 139 6.0 3.0 4.8 1.8 virginica
## 107 4.9 2.5 4.5 1.7 virginica
## 84 6.0 2.7 5.1 1.6 versicolor
## 78 6.7 3.0 5.0 1.7 versicolor
## 53 6.9 3.1 4.9 1.5 versicolor
## 73 6.3 2.5 4.9 1.5 versicolor
## 71 5.9 3.2 4.8 1.8 versicolor
## 77 6.8 2.8 4.8 1.4 versicolor
## 51 7.0 3.2 4.7 1.4 versicolor
## 57 6.3 3.3 4.7 1.6 versicolor
## 64 6.1 2.9 4.7 1.4 versicolor
## 74 6.1 2.8 4.7 1.2 versicolor
## 87 6.7 3.1 4.7 1.5 versicolor
## 55 6.5 2.8 4.6 1.5 versicolor
## 59 6.6 2.9 4.6 1.3 versicolor
## 92 6.1 3.0 4.6 1.4 versicolor
## 52 6.4 3.2 4.5 1.5 versicolor
## 56 5.7 2.8 4.5 1.3 versicolor
## 67 5.6 3.0 4.5 1.5 versicolor
## 69 6.2 2.2 4.5 1.5 versicolor
## 79 6.0 2.9 4.5 1.5 versicolor
## 85 5.4 3.0 4.5 1.5 versicolor
## 86 6.0 3.4 4.5 1.6 versicolor
## 66 6.7 3.1 4.4 1.4 versicolor
## 76 6.6 3.0 4.4 1.4 versicolor
## 88 6.3 2.3 4.4 1.3 versicolor
## 91 5.5 2.6 4.4 1.2 versicolor
## 75 6.4 2.9 4.3 1.3 versicolor
## 98 6.2 2.9 4.3 1.3 versicolor
## 62 5.9 3.0 4.2 1.5 versicolor
## 95 5.6 2.7 4.2 1.3 versicolor
## 96 5.7 3.0 4.2 1.2 versicolor
## 97 5.7 2.9 4.2 1.3 versicolor
## 68 5.8 2.7 4.1 1.0 versicolor
## 89 5.6 3.0 4.1 1.3 versicolor
## 100 5.7 2.8 4.1 1.3 versicolor
## 54 5.5 2.3 4.0 1.3 versicolor
## 63 6.0 2.2 4.0 1.0 versicolor
## 72 6.1 2.8 4.0 1.3 versicolor
## 90 5.5 2.5 4.0 1.3 versicolor
## 93 5.8 2.6 4.0 1.2 versicolor
## 60 5.2 2.7 3.9 1.4 versicolor
## 70 5.6 2.5 3.9 1.1 versicolor
## 83 5.8 2.7 3.9 1.2 versicolor
## 81 5.5 2.4 3.8 1.1 versicolor
## 82 5.5 2.4 3.7 1.0 versicolor
## 65 5.6 2.9 3.6 1.3 versicolor
## 61 5.0 2.0 3.5 1.0 versicolor
## 80 5.7 2.6 3.5 1.0 versicolor
## 58 4.9 2.4 3.3 1.0 versicolor
## 94 5.0 2.3 3.3 1.0 versicolor
## 99 5.1 2.5 3.0 1.1 versicolor
## 25 4.8 3.4 1.9 0.2 setosa
## 45 5.1 3.8 1.9 0.4 setosa
## 6 5.4 3.9 1.7 0.4 setosa
## 19 5.7 3.8 1.7 0.3 setosa
## 21 5.4 3.4 1.7 0.2 setosa
## 24 5.1 3.3 1.7 0.5 setosa
## 12 4.8 3.4 1.6 0.2 setosa
## 26 5.0 3.0 1.6 0.2 setosa
## 27 5.0 3.4 1.6 0.4 setosa
## 30 4.7 3.2 1.6 0.2 setosa
## 31 4.8 3.1 1.6 0.2 setosa
## 44 5.0 3.5 1.6 0.6 setosa
## 47 5.1 3.8 1.6 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 8 5.0 3.4 1.5 0.2 setosa
## 10 4.9 3.1 1.5 0.1 setosa
## 11 5.4 3.7 1.5 0.2 setosa
## 16 5.7 4.4 1.5 0.4 setosa
## 20 5.1 3.8 1.5 0.3 setosa
## 22 5.1 3.7 1.5 0.4 setosa
## 28 5.2 3.5 1.5 0.2 setosa
## 32 5.4 3.4 1.5 0.4 setosa
## 33 5.2 4.1 1.5 0.1 setosa
## 35 4.9 3.1 1.5 0.2 setosa
## 40 5.1 3.4 1.5 0.2 setosa
## 49 5.3 3.7 1.5 0.2 setosa
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 7 4.6 3.4 1.4 0.3 setosa
## 9 4.4 2.9 1.4 0.2 setosa
## 13 4.8 3.0 1.4 0.1 setosa
## 18 5.1 3.5 1.4 0.3 setosa
## 29 5.2 3.4 1.4 0.2 setosa
## 34 5.5 4.2 1.4 0.2 setosa
## 38 4.9 3.6 1.4 0.1 setosa
## 46 4.8 3.0 1.4 0.3 setosa
## 48 4.6 3.2 1.4 0.2 setosa
## 50 5.0 3.3 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 17 5.4 3.9 1.3 0.4 setosa
## 37 5.5 3.5 1.3 0.2 setosa
## 39 4.4 3.0 1.3 0.2 setosa
## 41 5.0 3.5 1.3 0.3 setosa
## 42 4.5 2.3 1.3 0.3 setosa
## 43 4.4 3.2 1.3 0.2 setosa
## 15 5.8 4.0 1.2 0.2 setosa
## 36 5.0 3.2 1.2 0.2 setosa
## 14 4.3 3.0 1.1 0.1 setosa
## 23 4.6 3.6 1.0 0.2 setosa
7-11
sp <- split(iris, iris$Species) # 품종별로 데이터 분리
sp # 분리 결과 확인
## $setosa
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
## 7 4.6 3.4 1.4 0.3 setosa
## 8 5.0 3.4 1.5 0.2 setosa
## 9 4.4 2.9 1.4 0.2 setosa
## 10 4.9 3.1 1.5 0.1 setosa
## 11 5.4 3.7 1.5 0.2 setosa
## 12 4.8 3.4 1.6 0.2 setosa
## 13 4.8 3.0 1.4 0.1 setosa
## 14 4.3 3.0 1.1 0.1 setosa
## 15 5.8 4.0 1.2 0.2 setosa
## 16 5.7 4.4 1.5 0.4 setosa
## 17 5.4 3.9 1.3 0.4 setosa
## 18 5.1 3.5 1.4 0.3 setosa
## 19 5.7 3.8 1.7 0.3 setosa
## 20 5.1 3.8 1.5 0.3 setosa
## 21 5.4 3.4 1.7 0.2 setosa
## 22 5.1 3.7 1.5 0.4 setosa
## 23 4.6 3.6 1.0 0.2 setosa
## 24 5.1 3.3 1.7 0.5 setosa
## 25 4.8 3.4 1.9 0.2 setosa
## 26 5.0 3.0 1.6 0.2 setosa
## 27 5.0 3.4 1.6 0.4 setosa
## 28 5.2 3.5 1.5 0.2 setosa
## 29 5.2 3.4 1.4 0.2 setosa
## 30 4.7 3.2 1.6 0.2 setosa
## 31 4.8 3.1 1.6 0.2 setosa
## 32 5.4 3.4 1.5 0.4 setosa
## 33 5.2 4.1 1.5 0.1 setosa
## 34 5.5 4.2 1.4 0.2 setosa
## 35 4.9 3.1 1.5 0.2 setosa
## 36 5.0 3.2 1.2 0.2 setosa
## 37 5.5 3.5 1.3 0.2 setosa
## 38 4.9 3.6 1.4 0.1 setosa
## 39 4.4 3.0 1.3 0.2 setosa
## 40 5.1 3.4 1.5 0.2 setosa
## 41 5.0 3.5 1.3 0.3 setosa
## 42 4.5 2.3 1.3 0.3 setosa
## 43 4.4 3.2 1.3 0.2 setosa
## 44 5.0 3.5 1.6 0.6 setosa
## 45 5.1 3.8 1.9 0.4 setosa
## 46 4.8 3.0 1.4 0.3 setosa
## 47 5.1 3.8 1.6 0.2 setosa
## 48 4.6 3.2 1.4 0.2 setosa
## 49 5.3 3.7 1.5 0.2 setosa
## 50 5.0 3.3 1.4 0.2 setosa
##
## $versicolor
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 51 7.0 3.2 4.7 1.4 versicolor
## 52 6.4 3.2 4.5 1.5 versicolor
## 53 6.9 3.1 4.9 1.5 versicolor
## 54 5.5 2.3 4.0 1.3 versicolor
## 55 6.5 2.8 4.6 1.5 versicolor
## 56 5.7 2.8 4.5 1.3 versicolor
## 57 6.3 3.3 4.7 1.6 versicolor
## 58 4.9 2.4 3.3 1.0 versicolor
## 59 6.6 2.9 4.6 1.3 versicolor
## 60 5.2 2.7 3.9 1.4 versicolor
## 61 5.0 2.0 3.5 1.0 versicolor
## 62 5.9 3.0 4.2 1.5 versicolor
## 63 6.0 2.2 4.0 1.0 versicolor
## 64 6.1 2.9 4.7 1.4 versicolor
## 65 5.6 2.9 3.6 1.3 versicolor
## 66 6.7 3.1 4.4 1.4 versicolor
## 67 5.6 3.0 4.5 1.5 versicolor
## 68 5.8 2.7 4.1 1.0 versicolor
## 69 6.2 2.2 4.5 1.5 versicolor
## 70 5.6 2.5 3.9 1.1 versicolor
## 71 5.9 3.2 4.8 1.8 versicolor
## 72 6.1 2.8 4.0 1.3 versicolor
## 73 6.3 2.5 4.9 1.5 versicolor
## 74 6.1 2.8 4.7 1.2 versicolor
## 75 6.4 2.9 4.3 1.3 versicolor
## 76 6.6 3.0 4.4 1.4 versicolor
## 77 6.8 2.8 4.8 1.4 versicolor
## 78 6.7 3.0 5.0 1.7 versicolor
## 79 6.0 2.9 4.5 1.5 versicolor
## 80 5.7 2.6 3.5 1.0 versicolor
## 81 5.5 2.4 3.8 1.1 versicolor
## 82 5.5 2.4 3.7 1.0 versicolor
## 83 5.8 2.7 3.9 1.2 versicolor
## 84 6.0 2.7 5.1 1.6 versicolor
## 85 5.4 3.0 4.5 1.5 versicolor
## 86 6.0 3.4 4.5 1.6 versicolor
## 87 6.7 3.1 4.7 1.5 versicolor
## 88 6.3 2.3 4.4 1.3 versicolor
## 89 5.6 3.0 4.1 1.3 versicolor
## 90 5.5 2.5 4.0 1.3 versicolor
## 91 5.5 2.6 4.4 1.2 versicolor
## 92 6.1 3.0 4.6 1.4 versicolor
## 93 5.8 2.6 4.0 1.2 versicolor
## 94 5.0 2.3 3.3 1.0 versicolor
## 95 5.6 2.7 4.2 1.3 versicolor
## 96 5.7 3.0 4.2 1.2 versicolor
## 97 5.7 2.9 4.2 1.3 versicolor
## 98 6.2 2.9 4.3 1.3 versicolor
## 99 5.1 2.5 3.0 1.1 versicolor
## 100 5.7 2.8 4.1 1.3 versicolor
##
## $virginica
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 101 6.3 3.3 6.0 2.5 virginica
## 102 5.8 2.7 5.1 1.9 virginica
## 103 7.1 3.0 5.9 2.1 virginica
## 104 6.3 2.9 5.6 1.8 virginica
## 105 6.5 3.0 5.8 2.2 virginica
## 106 7.6 3.0 6.6 2.1 virginica
## 107 4.9 2.5 4.5 1.7 virginica
## 108 7.3 2.9 6.3 1.8 virginica
## 109 6.7 2.5 5.8 1.8 virginica
## 110 7.2 3.6 6.1 2.5 virginica
## 111 6.5 3.2 5.1 2.0 virginica
## 112 6.4 2.7 5.3 1.9 virginica
## 113 6.8 3.0 5.5 2.1 virginica
## 114 5.7 2.5 5.0 2.0 virginica
## 115 5.8 2.8 5.1 2.4 virginica
## 116 6.4 3.2 5.3 2.3 virginica
## 117 6.5 3.0 5.5 1.8 virginica
## 118 7.7 3.8 6.7 2.2 virginica
## 119 7.7 2.6 6.9 2.3 virginica
## 120 6.0 2.2 5.0 1.5 virginica
## 121 6.9 3.2 5.7 2.3 virginica
## 122 5.6 2.8 4.9 2.0 virginica
## 123 7.7 2.8 6.7 2.0 virginica
## 124 6.3 2.7 4.9 1.8 virginica
## 125 6.7 3.3 5.7 2.1 virginica
## 126 7.2 3.2 6.0 1.8 virginica
## 127 6.2 2.8 4.8 1.8 virginica
## 128 6.1 3.0 4.9 1.8 virginica
## 129 6.4 2.8 5.6 2.1 virginica
## 130 7.2 3.0 5.8 1.6 virginica
## 131 7.4 2.8 6.1 1.9 virginica
## 132 7.9 3.8 6.4 2.0 virginica
## 133 6.4 2.8 5.6 2.2 virginica
## 134 6.3 2.8 5.1 1.5 virginica
## 135 6.1 2.6 5.6 1.4 virginica
## 136 7.7 3.0 6.1 2.3 virginica
## 137 6.3 3.4 5.6 2.4 virginica
## 138 6.4 3.1 5.5 1.8 virginica
## 139 6.0 3.0 4.8 1.8 virginica
## 140 6.9 3.1 5.4 2.1 virginica
## 141 6.7 3.1 5.6 2.4 virginica
## 142 6.9 3.1 5.1 2.3 virginica
## 143 5.8 2.7 5.1 1.9 virginica
## 144 6.8 3.2 5.9 2.3 virginica
## 145 6.7 3.3 5.7 2.5 virginica
## 146 6.7 3.0 5.2 2.3 virginica
## 147 6.3 2.5 5.0 1.9 virginica
## 148 6.5 3.0 5.2 2.0 virginica
## 149 6.2 3.4 5.4 2.3 virginica
## 150 5.9 3.0 5.1 1.8 virginica
summary(sp) # 분리 결과 요약
## Length Class Mode
## setosa 5 data.frame list
## versicolor 5 data.frame list
## virginica 5 data.frame list
sp$setosa # setosa 품종의 데이터 확인
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
## 7 4.6 3.4 1.4 0.3 setosa
## 8 5.0 3.4 1.5 0.2 setosa
## 9 4.4 2.9 1.4 0.2 setosa
## 10 4.9 3.1 1.5 0.1 setosa
## 11 5.4 3.7 1.5 0.2 setosa
## 12 4.8 3.4 1.6 0.2 setosa
## 13 4.8 3.0 1.4 0.1 setosa
## 14 4.3 3.0 1.1 0.1 setosa
## 15 5.8 4.0 1.2 0.2 setosa
## 16 5.7 4.4 1.5 0.4 setosa
## 17 5.4 3.9 1.3 0.4 setosa
## 18 5.1 3.5 1.4 0.3 setosa
## 19 5.7 3.8 1.7 0.3 setosa
## 20 5.1 3.8 1.5 0.3 setosa
## 21 5.4 3.4 1.7 0.2 setosa
## 22 5.1 3.7 1.5 0.4 setosa
## 23 4.6 3.6 1.0 0.2 setosa
## 24 5.1 3.3 1.7 0.5 setosa
## 25 4.8 3.4 1.9 0.2 setosa
## 26 5.0 3.0 1.6 0.2 setosa
## 27 5.0 3.4 1.6 0.4 setosa
## 28 5.2 3.5 1.5 0.2 setosa
## 29 5.2 3.4 1.4 0.2 setosa
## 30 4.7 3.2 1.6 0.2 setosa
## 31 4.8 3.1 1.6 0.2 setosa
## 32 5.4 3.4 1.5 0.4 setosa
## 33 5.2 4.1 1.5 0.1 setosa
## 34 5.5 4.2 1.4 0.2 setosa
## 35 4.9 3.1 1.5 0.2 setosa
## 36 5.0 3.2 1.2 0.2 setosa
## 37 5.5 3.5 1.3 0.2 setosa
## 38 4.9 3.6 1.4 0.1 setosa
## 39 4.4 3.0 1.3 0.2 setosa
## 40 5.1 3.4 1.5 0.2 setosa
## 41 5.0 3.5 1.3 0.3 setosa
## 42 4.5 2.3 1.3 0.3 setosa
## 43 4.4 3.2 1.3 0.2 setosa
## 44 5.0 3.5 1.6 0.6 setosa
## 45 5.1 3.8 1.9 0.4 setosa
## 46 4.8 3.0 1.4 0.3 setosa
## 47 5.1 3.8 1.6 0.2 setosa
## 48 4.6 3.2 1.4 0.2 setosa
## 49 5.3 3.7 1.5 0.2 setosa
## 50 5.0 3.3 1.4 0.2 setosa
7-12
subset(iris, Species == "setosa")
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
## 7 4.6 3.4 1.4 0.3 setosa
## 8 5.0 3.4 1.5 0.2 setosa
## 9 4.4 2.9 1.4 0.2 setosa
## 10 4.9 3.1 1.5 0.1 setosa
## 11 5.4 3.7 1.5 0.2 setosa
## 12 4.8 3.4 1.6 0.2 setosa
## 13 4.8 3.0 1.4 0.1 setosa
## 14 4.3 3.0 1.1 0.1 setosa
## 15 5.8 4.0 1.2 0.2 setosa
## 16 5.7 4.4 1.5 0.4 setosa
## 17 5.4 3.9 1.3 0.4 setosa
## 18 5.1 3.5 1.4 0.3 setosa
## 19 5.7 3.8 1.7 0.3 setosa
## 20 5.1 3.8 1.5 0.3 setosa
## 21 5.4 3.4 1.7 0.2 setosa
## 22 5.1 3.7 1.5 0.4 setosa
## 23 4.6 3.6 1.0 0.2 setosa
## 24 5.1 3.3 1.7 0.5 setosa
## 25 4.8 3.4 1.9 0.2 setosa
## 26 5.0 3.0 1.6 0.2 setosa
## 27 5.0 3.4 1.6 0.4 setosa
## 28 5.2 3.5 1.5 0.2 setosa
## 29 5.2 3.4 1.4 0.2 setosa
## 30 4.7 3.2 1.6 0.2 setosa
## 31 4.8 3.1 1.6 0.2 setosa
## 32 5.4 3.4 1.5 0.4 setosa
## 33 5.2 4.1 1.5 0.1 setosa
## 34 5.5 4.2 1.4 0.2 setosa
## 35 4.9 3.1 1.5 0.2 setosa
## 36 5.0 3.2 1.2 0.2 setosa
## 37 5.5 3.5 1.3 0.2 setosa
## 38 4.9 3.6 1.4 0.1 setosa
## 39 4.4 3.0 1.3 0.2 setosa
## 40 5.1 3.4 1.5 0.2 setosa
## 41 5.0 3.5 1.3 0.3 setosa
## 42 4.5 2.3 1.3 0.3 setosa
## 43 4.4 3.2 1.3 0.2 setosa
## 44 5.0 3.5 1.6 0.6 setosa
## 45 5.1 3.8 1.9 0.4 setosa
## 46 4.8 3.0 1.4 0.3 setosa
## 47 5.1 3.8 1.6 0.2 setosa
## 48 4.6 3.2 1.4 0.2 setosa
## 49 5.3 3.7 1.5 0.2 setosa
## 50 5.0 3.3 1.4 0.2 setosa
subset(iris, Sepal.Length > 7.5)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 106 7.6 3.0 6.6 2.1 virginica
## 118 7.7 3.8 6.7 2.2 virginica
## 119 7.7 2.6 6.9 2.3 virginica
## 123 7.7 2.8 6.7 2.0 virginica
## 132 7.9 3.8 6.4 2.0 virginica
## 136 7.7 3.0 6.1 2.3 virginica
subset(iris, Sepal.Length > 5.1 &
Sepal.Width > 3.9)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 15 5.8 4.0 1.2 0.2 setosa
## 16 5.7 4.4 1.5 0.4 setosa
## 33 5.2 4.1 1.5 0.1 setosa
## 34 5.5 4.2 1.4 0.2 setosa
subset(iris, Sepal.Length > 7.6,
select=c(Petal.Length,Petal.Width))
## Petal.Length Petal.Width
## 118 6.7 2.2
## 119 6.9 2.3
## 123 6.7 2.0
## 132 6.4 2.0
## 136 6.1 2.3
7-13
x <- 1:100
y <- sample(x, size=10, replace = FALSE) # 비복원추출
y
## [1] 14 31 76 58 70 59 36 96 46 44
7-14
idx <- sample(1:nrow(iris), size=50,
replace = FALSE)
iris.50 <- iris[idx,] # 50개의 행 추출
dim(iris.50) # 행과 열의 개수 확인
## [1] 50 5
head(iris.50)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 47 5.1 3.8 1.6 0.2 setosa
## 86 6.0 3.4 4.5 1.6 versicolor
## 130 7.2 3.0 5.8 1.6 virginica
## 21 5.4 3.4 1.7 0.2 setosa
## 75 6.4 2.9 4.3 1.3 versicolor
## 68 5.8 2.7 4.1 1.0 versicolor
7-15
sample(1:20, size=5)
## [1] 18 20 4 3 9
sample(1:20, size=5)
## [1] 6 16 12 3 20
sample(1:20, size=5)
## [1] 15 19 8 11 2
set.seed(100)
sample(1:20, size=5)
## [1] 10 6 16 14 12
set.seed(100)
sample(1:20, size=5)
## [1] 10 6 16 14 12
set.seed(100)
sample(1:20, size=5)
## [1] 10 6 16 14 12
7-16
combn(1:5,3) # 1~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
7-17
agg <- aggregate(iris[,-5], by=list(iris$Species),
FUN=mean)
agg
## Group.1 Sepal.Length Sepal.Width Petal.Length Petal.Width
## 1 setosa 5.006 3.428 1.462 0.246
## 2 versicolor 5.936 2.770 4.260 1.326
## 3 virginica 6.588 2.974 5.552 2.026
7-18
agg <- aggregate(iris[,-5], by=list("표준편차"=iris$Species),
FUN=sd)
agg
## 표준편차 Sepal.Length Sepal.Width Petal.Length Petal.Width
## 1 setosa 0.3524897 0.3790644 0.1736640 0.1053856
## 2 versicolor 0.5161711 0.3137983 0.4699110 0.1977527
## 3 virginica 0.6358796 0.3224966 0.5518947 0.2746501
7-19
head(mtcars)
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
agg <- aggregate(mtcars, by=list(cyl=mtcars$cyl,
vs=mtcars$vs),FUN=max)
agg
## cyl vs mpg cyl disp hp drat wt qsec vs am gear carb
## 1 4 0 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2
## 2 6 0 21.0 6 160.0 175 3.90 2.875 17.02 0 1 5 6
## 3 8 0 19.2 8 472.0 335 4.22 5.424 18.00 0 1 5 8
## 4 4 1 33.9 4 146.7 113 4.93 3.190 22.90 1 1 5 2
## 5 6 1 21.4 6 258.0 123 3.92 3.460 20.22 1 0 4 4
7-20, 7-21
x <- data.frame(name=c("a","b","c"), math=c(90,80,40))
y <- data.frame(name=c("a","b","d"), korean=c(75,60,90))
x
## name math
## 1 a 90
## 2 b 80
## 3 c 40
y
## name korean
## 1 a 75
## 2 b 60
## 3 d 90
z <- merge(x,y, by=c("name"))
z
## name math korean
## 1 a 90 75
## 2 b 80 60
7-22
merge(x,y, all.x=T) # 첫 번째 데이터셋의 행들은 모두 표시되게
## name math korean
## 1 a 90 75
## 2 b 80 60
## 3 c 40 NA
merge(x,y, all.y=T) # 두 번째 데이터셋의 행들은 모두 표시되게
## name math korean
## 1 a 90 75
## 2 b 80 60
## 3 d NA 90
merge(x,y, all=T) # 두 데이터셋의 모든 행들이 표시되도록
## name math korean
## 1 a 90 75
## 2 b 80 60
## 3 c 40 NA
## 4 d NA 90
7-23
x <- data.frame(name=c("a","b","c"), math=c(90,80,40))
y <- data.frame(sname=c("a","b","d"), korean=c(75,60,90))
x # 병합 기준 열의 이름이 name
## name math
## 1 a 90
## 2 b 80
## 3 c 40
y # 병합 기준 열의 이름이 sname
## sname korean
## 1 a 75
## 2 b 60
## 3 d 90
merge(x,y, by.x=c("name"), by.y=c("sname"))
## name math korean
## 1 a 90 75
## 2 b 80 60