웹사이트 검색

R 프로그래밍의 which() 함수


R의 which() 함수는 주어진 조건을 만족하는 값의 위치 또는 인덱스를 반환합니다. R의 which() 함수는 논리 벡터에서 값의 위치를 제공합니다. 위치는 행, 열 및 벡터와 같은 모든 것이 될 수 있습니다.

R에서 which() 함수의 구문

which(): R의 which 함수는 논리 벡터에서 값의 위치를 반환합니다.

which(x,arr.ind = F,useNames = F)

어디,

  • X=입력 논리 벡터.
  • Arr.ind = x가 배열이면 배열 인덱스를 반환합니다.
  • useNames=배열의 차원 이름을 나타냅니다.

which() 함수의 간단한 예

글쎄, 당신은 작동 특성과 함께 어떤 기능에 대한 정의를 얻었습니다. 이제 배운 내용을 실제로 적용해 봅시다.

어떻게 작동하는지 봅시다.

which(letters=="p")

16

which(letters=="n")

14

which(letters=="l")

12

"letters\는 영어 알파벳 26자를 모두 직렬로 배열한 내장 상수입니다.

위에 표시되는 출력은 데이터 프레임에서 각 문자의 위치를 나타냅니다. 보시다시피 "p\는 알파벳에서 16번째이고 "l\과 "n\은 각각 14번째와 12번째입니다.

이제 which 함수로 작업하는 방법을 알아보겠습니다.

벡터와 함께 which() 함수 사용

이제 R 언어로 벡터를 생성한 다음 which 함수를 사용하여 위치 추적을 해 봅시다.

#creating a vector 
df<- c(5,4,3,2,1)
#Postion of 5
which(df==5)

1

#Position of 1
which(df==1)

5

#Position of values greater than 2
which(df>2)

1 2 3

엄청난! R의 which()는 주어진 입력에서 값의 위치를 반환합니다. 또한 함수를 사용하여 특정 조건을 전달하고 마지막 예제에서 본 조건과 일치하는 출력 위치를 가져올 수 있습니다.

데이터 프레임에 which() 함수 사용

이제 R 언어에서 데이터 프레임에 대해 which 함수를 어떻게 적용할 수 있는지 알아보겠습니다.

df<-datasets::BOD
df
    Time  demand
1    1    8.3
2    2   10.3
3    3   19.0
4    4   16.0
5    5   15.6
6    7   19.8

이를 위해 Time 및 Demand라는 2개의 열이 포함된 BOD 데이터 세트를 사용하고 있습니다. 또 다른 기본 제공 데이터 세트입니다.

which 함수를 사용하여 데이터에서 값의 위치를 찾아봅시다.

which(df$demand=='10.3')
2

which() 함수에 값 목록을 입력할 수도 있습니다. 데이터 프레임에서 두 값의 위치를 찾으려는 아래 예를 살펴보십시오.

which(df$demand==c(8.3,16.0))
1    4

which()를 사용하여 숫자 값이 있는 데이터 프레임에서 열 찾기

which() 함수를 사용하여 숫자 데이터가 포함된 데이터에서 열 이름을 찾을 수도 있습니다.

R 언어에서 어떻게 작동하는지 봅시다. 이를 위해 "Iris\ 데이터셋을 사용하고 있습니다.

df<-datasets::iris
df
   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
test<-which(sapply(df,is.numeric))
colnames(df)[test]
"Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width" 

출력은 iris 데이터 세트에 5개의 열이 있음을 보여줍니다. 그 중 4개는 숫자 열이고 1개는 범주형(종)입니다.

우리는 여기서 which() 메서드와 함께 R의 sapply 함수를 사용했습니다.

which() 함수는 입력 조건에 따라 숫자 열의 이름만 반환했습니다. 데이터 분석가라면 which() 함수가 매우 유용할 것입니다.

R에서 매트릭스를 사용하는 함수

마지막으로 R의 행렬에 도달했습니다. R 언어의 which() 함수를 사용하여 행렬에서 값의 위치를 얻을 수 있습니다. 또한 이 섹션에서 arr.index 매개변수에 대해 알게 될 것입니다.

가장 먼저 해야 할 일 - 행렬 만들기

df<-matrix(rep(c(1,0,1),4),nrow = 4)
df
       [,1] [,2] [,3]
[1,]    1    0    1
[2,]    0    1    1
[3,]    1    1    0
[4,]    1    0    1

환상적이다!!! 보기 좋은 매트릭스를 만들었습니다. 명성. 행렬에서 값 '0'의 위치를 얻기 위해 which()를 사용합시다.

which(df==0,arr.ind = T)
      row col
[1,]   2   1
[2,]   1   2
[3,]   4   2
[4,]   3   3

음, which 함수는 행렬에서 값 '0'의 위치를 반환했습니다.

"0\의 첫 번째 발생은 두 번째 행 첫 번째 열에 있습니다. 그 다음 발생은 첫 번째 행 두 번째 열에 있습니다. 그 다음에는 네 번째 행 두 번째 열이 있고 마지막으로 세 번째 행 세 번째 열이 있습니다.

결론

R의 which() 함수는 데이터 분석 및 마이닝에서 가장 널리 사용되는 함수 중 하나입니다.

이 함수는 데이터에서 값의 위치를 제공합니다. 수많은 데이터로 작업하는 경우 특정 값 위치를 찾기가 어려울 것이며 R에는 which()가 있습니다.

지금은 여기까지입니다. 행복한 포지셔닝!!!

더 읽기: R 문서