(Ch8) 조건에 맞는 데이터의 위치 찾기

2024. 8. 26. 23:09확률 통계/R 데이터 분석

조건에 맞는 데이터의 위치 찾기 기본

  • 백터나 매트릭스, 데이터프레임 내부에서 데이터가 어느 위치에 있는 파악하기 위해서 which(), which.max(), which.min() 함수를 사용하면 된다.
x<-c(10,20,30,40,50,60,70)
which(x==30)
which(x==35)
which(x>=56)
max(x)
which.max(x)
min(x)
which.min(x)
> x<-c(10,20,30,40,50,60,70)

> which(x==30)
[1] 3

> which(x==35)
integer(0)

> which(x>=56)
[1] 6 7

> max(x)
[1] 70

> which.max(x)
[1] 7

> min(x)
[1] 10

> which.min(x)
[1] 1
  • which(조건): 조건에 알맞은 데이터의 위치를 찾아줌→만약 정수의 데이터가 없는 경우 Integer(0)를 출력한다.
  • which.max(데이터 셋): 제일 큰 데이터의 위치를 찾아준다.
  • which.min(데이터 셋): 제일 작은 데이터의 위치를 찾아준다.

활용하기

x<-c(10,10,20,30,40,50,60,70,70)
idx<-which(x<=45)
x[idx]<-61
x

idx<-which(x>=60)
score.high<-x[idx]
score.high
> x<-c(10,10,20,30,40,50,60,70,70)

> idx<-which(x<=45) #45이하인 인덱스 값을 저장

> idx #인덱스 값들
[1] 1 2 3 4 5

> x[idx]<-61 #45이하인 값들을 61로 변경

> x
[1] 61 61 61 61 61 50 60 70 70 

> idx<-which(x>=60)
  • 처음에 idx에 45 이하인 값들의 인덱스값을 저장해 준다.
  • 그런 다음 45 이하인 값들을 61로 변경해 준다.
  • 그 후에 출력한다면 45 이하의 값들이 61로 변경된 것을 확인할 수 있다.
idx<-which(iris$Petal.Length>5.0)
idx
x<-iris[idx,]
x
> x
    Sepal.Length Sepal.Width Petal.Length
84           6.0         2.7          5.1
101          6.3         3.3          6.0
102          5.8         2.7          5.1
103          7.1         3.0          5.9
104          6.3         2.9          5.6
......
146          6.7         3.0          5.2
148          6.5         3.0          5.2
149          6.2         3.4          5.4
150          5.9         3.0          5.1
    Petal.Width    Species
84          1.6 versicolor
101         2.5  virginica
102         1.9  virginica
103         2.1  virginica
104         1.8  virginica
105         2.2  virginica
......
144         2.3  virginica
145         2.5  virginica
146         2.3  virginica
148         2.0  virginica
149         2.3  virginica
150         1.8  virginica
  • 5.0보다 큰 데이터들의 인덱스를 idx에 저장해 주고 iris의 행의 인덱스값에 따라서 출력해 준다.
idx<-which(iris[,1:4]>5.0,arr.ind=T)
idx
> idx
       row col
  [1,]   1   1
  [2,]   6   1
  [3,]  11   1
......
[157,] 146   3
[158,] 148   3
[159,] 149   3
[160,] 150   3
  • 행과 열의 위치를 확인하기 위해서 arr.ind를 사용하여서 확인할 수 있다.

'확률 통계 > R 데이터 분석' 카테고리의 다른 글

다중변수 자료의 탐색  (0) 2024.08.30
단일변수 자료의 탐색  (0) 2024.08.29
(Ch 7) apply함수&사용자 정의 함수  (1) 2024.08.26
(Ch 6) 반복문  (2) 2024.08.25
(Ch 5) 조건문  (0) 2024.08.25