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
'프로그래밍 > R' 카테고리의 다른 글
[R] as.Date, lubridate() ('생년월일으로 나이를 계산하기') (1) | 2024.05.19 |
---|---|
[R] intersect() 함수 (데이터 공통 요소 찾기) (0) | 2024.05.19 |
[R] 문자열(string) 다루기 #2 함수 nchar(), toupper(), tolower(), strsplit(), paste() (0) | 2023.02.03 |
[R] string 패턴 표현식 (숫자, 공백, 문자, 특수문자 찾기) (0) | 2023.02.01 |
[R] 문자열(string) 다루기 #1 함수 grep(), grepl() (0) | 2023.01.31 |