$ 연산자는 R의 원자 벡터 오류에 대해 유효하지 않습니다.

Jesse John 2023년6월21일
  1. $ 연산자는 원자 벡터에 유효하지 않습니다 R의 오류
  2. R의 [][[]] 연산자
  3. getElement() 함수 사용
  4. 벡터를 데이터 프레임으로 변환하고 $ 연산자 사용
$ 연산자는 R의 원자 벡터 오류에 대해 유효하지 않습니다.

R은 벡터의 요소를 추출할 수 있는 다양한 방법을 제공합니다. 이 기사에서는 이러한 목적을 위한 기본 R의 기능에 대해 설명합니다.

주목해야 할 중요한 점은 R의 추출 연산자 중 하나인 $가 벡터에 대해 작동하지 않는다는 것입니다. 이것으로 시작한 다음 사용 가능한 다양한 옵션을 확인합니다.

$ 연산자는 원자 벡터에 유효하지 않습니다 R의 오류

$ 연산자는 데이터 프레임의 명명된 열 또는 목록의 명명된 요소를 추출하는 데 사용할 수 있지만 벡터에서는 작동하지 않습니다. R은 오류를 발생시킵니다.

$ 연산자에는 숫자 인덱스가 아닌 이름이 필요합니다. 따라서 요소의 이름이 지정된 벡터를 만들 것입니다.

예제 코드:

# Create a vector using c(). Assign names for its elements.
vr1 = c(a = "alpha", d = "delta", r = "rho", s = "sigma")
vr1

# Try to extract the second element.
vr1$d

출력:

> vr1$d
Error in vr1$d : $ operator is invalid for atomic vectors

R은 $ 연산자가 원자 벡터에 유효하지 않다고 알려줍니다.

숫자 또는 문자열의 벡터는 모든 요소가 동일한 유형이고 요소로 다른 벡터를 가질 수 없기 때문에 원자성이라고 합니다.

우리의 예에서와 같은 원자 벡터의 경우 R의 다른 기능을 사용하여 요소를 추출해야 합니다.

R의 [][[]] 연산자

[][[]] 연산자를 사용하여 벡터의 요소를 추출할 수 있습니다.

  1. [][[]]는 위치 인덱스 또는 이름을 사용할 수 있습니다.
  2. []는 여러 요소를 추출할 수 있는 반면 [[]]는 하나의 요소만 추출할 수 있습니다.
  3. [[]]는 이름을 삭제하고 []는 요소를 추출할 때 이름을 유지합니다.

예제 코드:

# Use [] with index number or name to extract a single element.
vr1[2]
vr1['d']

# Use [[]] with the index number of the name to extract a single element.
vr1[[2]]
vr1[['d']]

# Use [] to extract multiple elements. Use indices or names.
vr1[c(2,4)]
vr1[c('d', 's')]

출력:

> # Use [] with index number or name to extract a single element.
> vr1[2]
      d
"delta"
> vr1['d']
      d
"delta"

> # Use [[]] with index number of name to extract a single element.
> vr1[[2]]
[1] "delta"
> vr1[['d']]
[1] "delta"

> # Use [] to extract multiple elements. Use indices or names.
> vr1[c(2,4)]
      d       s
"delta" "sigma"
> vr1[c('d', 's')]
      d       s
"delta" "sigma"

getElement() 함수 사용

추출 연산자 외에도 R은 벡터에서 요소를 추출하는 getElement() 함수도 제공합니다.

getElement()exact = TRUE 옵션이 있는 [[]] 연산자와 유사합니다.

  1. 이름이나 색인을 사용하여 하나의 요소만 선택할 수 있습니다.
  2. 이름이 삭제됩니다.

예제 코드:

getElement(vr1, 'd')
getElement(vr1, 2)

출력:

> getElement(vr1, 'd')
[1] "delta"
> getElement(vr1, 2)
[1] "delta"

벡터를 데이터 프레임으로 변환하고 $ 연산자 사용

$ 연산자를 사용하여 벡터에서 요소를 추출하려면 먼저 벡터를 데이터 프레임으로 변환해야 합니다.

예제 코드:

dfr1 = as.data.frame(vr1)
dfr1

출력:

> dfr1 = as.data.frame(vr1)
> dfr1
    vr1
a alpha
d delta
r   rho
s sigma

하나의 열과 네 개의 행이 있는 데이터 프레임이 있습니다. 벡터의 이름이 열 이름이 되었습니다. 요소 이름이 행 이름이 되었습니다.

원래 벡터의 요소를 추출하려면 원하는 행 및 열 이름을 지정해야 합니다. 모든 열의 행 이름을 지정할 수도 있습니다.

예제 코드:

# Use names for row and column.
dfr1['d','vr1']

# Only name the row, and select all columns.
dfr1['d',]

출력:

> # Use names for row and column.
> dfr1['d','vr1']
[1] "delta"
> # Only name the row and select all columns.
> dfr1['d',]
[1] "delta"
작가: Jesse John
Jesse John avatar Jesse John avatar

Jesse is passionate about data analysis and visualization. He uses the R statistical programming language for all aspects of his work.

관련 문장 - R Error