본문 바로가기
프로그래밍/R

[R] which() 함수 (예시, 두가지조건 한꺼번에 찾기)

by research_notes 2024. 5. 19.
728x90
반응형
반응형

1. which() 함수?

함수는 논리 벡터에서 TRUE인 요소의 인덱스를 식별하는 데 사용됩니다.

: 데이터 집합에서 특정 조건을 충족하는 요소의 위치를 찾거나 데이터를 추출하는 데 매우 유용함. 

"어떠한 조건을 만족시키는 값의 인덱스를 출력해주는 함수"

 

2. Basic syntax

which(x, arr.ind = FALSE)

# x: 요소가 TRUE인지 테스트되는 논리 벡터(또는 논리형으로 변환 가능한 객체).
# arr.ind: 행렬과 더 높은 차원의 배열에 대해 배열 인덱스를 반환할지 여부를 나타내는 논리형 인자.

 

3. Example

Example 1: 기본 사용

## 숫자로 구성된 벡터가 있고 5보다 큰 모든 요소의 인덱스를 찾고 싶을 때 ##

> numbers <- c(2, 5, 7, 9, 1, 6)
> result <- which(numbers > 5) # 5보다 큰 숫자가 있는 인덱스 출력
> print(result)
[1] 3 4 6

 

인덱스     값            >5?

1             2           FALSE

2            5           FALSE

3            7           TRUE

4            9           TRUE

5            1            FALSE

6            6           TRUE

 

result =====> 3  4  6 #해당 값이 아닌 인덱스 출력

 

Example 2: NA 값 찾기

> data_with_na <- c(1, NA, 3, NA, 5)
> na_indices <- which(is.na(data_with_na))
> print(na_indices)
[1] 2 4

 

Example 3: 행렬에서 사용

> set.seed(123)
> matrix_data <- matrix(rnorm(20), nrow=4)
> print(matrix_data)
            [,1]       [,2]       [,3]       [,4]       [,5]
[1,] -0.56047565  0.1292877 -0.6868529  0.4007715  0.4978505
[2,] -0.23017749  1.7150650 -0.4456620  0.1106827 -1.9666172
[3,]  1.55870831  0.4609162  1.2240818 -0.5558411  0.7013559
[4,]  0.07050839 -1.2650612  0.3598138  1.7869131 -0.4727914

> positive_indices <- which(matrix_data > 0, arr.ind = TRUE)
> print(positive_indices)
      row col
 [1,]   3   1
 [2,]   4   1
 [3,]   1   2
 [4,]   2   2
 [5,]   3   2
 [6,]   3   3
 [7,]   4   3
 [8,]   1   4
 [9,]   2   4
[10,]   4   4
[11,]   1   5
[12,]   3   5

 

Example 4: 조건 결합 (multiple conditions) 

# 0보다 크고 짝수인 숫자를 찾고 싶다면:

> numbers <- c(-2, -1, 0, 1, 2, 3, 4)
> even_positive_indices <- which(numbers > 0 & numbers %% 2 == 0)
> print(even_positive_indices)
[1] 5 7

 

인덱스      값            > 0 ??           짝수??

1             -2          FALSE           TRUE  

2            -1           FALSE          FALSE

3             0           FALSE           TRUE

4             1            TRUE           FALSE

5             2           TRUE            TRUE

6             3           TRUE           FALSE

7             4           TRUE            TRUE

even_positive_indices ====> 5  7 # 양수이자 짝수인 값을 가진 인덱스 출력

 

2024.05.19 - [프로그래밍/R] - [R] intersect() 함수 (데이터 공통 요소 찾기)

 

[R] intersect() 함수 (데이터 공통 요소 찾기)

1. intersect() ??: 두 벡터, 리스트 또는 다른 데이터 구조 사이의 공통 요소를 찾는 데 사용.: 함수는 두 입력 벡터 모두에 존재하는 값을 포함하는 벡터를 반환하며, 중복은 제거. : 데이터 세트를

kimtutor.tistory.com

 

728x90
반응형