logo

R에서 수정하는 방법: $ 연산자가 원자 벡터에 유효하지 않습니다.

이 기사에서는 $ 연산자가 원자 벡터에 대해 유효하지 않은 문제를 수정하는 방법을 살펴보겠습니다. R 프로그래밍 언어 .

R에서 직면할 수 있는 오류는 다음과 같습니다.



$ operator is invalid for atomic vectors>

이러한 오류는 $ 연산자를 사용하여 원자 벡터의 요소를 얻으려고 할 때 R 컴파일러에서 생성됩니다. 원자 벡터는 단순히 c() 및 vector() 함수를 사용하여 생성된 데이터를 포함하는 1차원 객체입니다. R에서는 $ 기호를 사용하여 원자 벡터의 요소에 액세스하는 것을 허용하지 않습니다. 그러나 이중 괄호, 즉 [[]] 또는 getElement() 함수를 사용하여 액세스할 수 있습니다.

이 오류가 발생할 수 있는 경우

숫자형 벡터가 있는 예를 생각해 봅시다. 나르다 처음 5개의 자연수로 초기화됩니다. 각 숫자에는 R의 names() 함수를 사용하여 이름이 할당됩니다. names() 함수의 구문은 다음과 같습니다.

통사론: 이름(벡터) <- 값



매개변수:

  • vect: 객체(예: 벡터, 행렬, 데이터 프레임 등)
  • value: 할당할 해당 이름

아르 자형






# Define a vector> vect <->c>(1, 2, 3, 4, 5)> > # Set integers names> names>(vect) <->c>(>'first'>,>'second'>,>'third'>,> >'fourth'>,>'fifth'>)> > # Display the vector> vect>

>

>

산출:

이제 문을 사용하여 세 번째 요소에 액세스해 보겠습니다. 벡터$세 번째:

아르 자형


파이썬에서 s는 무엇입니까?



# Define a vector> vect <->c>(1, 2, 3, 4, 5)> > # Set integers names> names>(vect) <->c>(>'first'>,>'second'>,>'third'>,> >'fourth'>,>'fifth'>)> > # Display the vector> vect$third>

>

>

산출:

R 컴파일러는 이런 방식으로 원자 벡터의 요소에 액세스하는 것이 허용되지 않기 때문에 오류를 생성합니다. 벡터가 실제로 원자 벡터인지 확인하려면 R에서 is.atomic() 함수를 사용할 수 있습니다. 이 함수의 구문은 다음과 같습니다.

자바 컬렉션 자바

통사론: is.atomic(벡터)

매개변수:

vect: 여기서 vect는 벡터를 나타냅니다.

반환 유형:

  • TRUE: vect가 원자 벡터인 경우
  • FALSE: vect가 원자 벡터가 아닌 경우

오류를 수정하는 방법

사용방법은 3가지가 있는데, 이 오류를 수정할 수 있습니다.

방법 1: 이중 괄호를 사용하여 요소에 액세스

이중 괄호([[]])를 사용하면 원자 벡터의 요소에 쉽게 접근할 수 있습니다.

아르 자형




# Define a vector> vect <->c>(1, 2, 3, 4, 5)> > # Set integers names> names>(vect) <->c>(>'first'>,>'second'>,>'third'>,> >'fourth'>,>'fifth'>)> > # Display the third element of the> # vector> vect[[>'third'>]]>

>

>

산출:

방법 2: getElement() 함수를 사용하여 요소에 액세스

또 다른 방법은 getElement() 함수를 사용하여 원자 벡터의 요소에 액세스하는 것입니다. 이 함수의 구문은 다음과 같습니다.

통사론: getElement(벡터, 지정자)

매개변수:

  • vect: 벡터를 나타냅니다.
  • 지정자: 접근하려는 요소의 이름을 나타냅니다.

반환 유형:

  • 지정자로 표시된 요소를 반환합니다.

아르 자형




# Define a vector> vect <->c>(1, 2, 3, 4, 5)> > # Set integers names> names>(vect) <->c>(>'first'>,>'second'>,>'third'>,> >'fourth'>,>'fifth'>)> > # Display the third element of> # the vector> getElement>(vect,>'third'>)>

>

>

산출:

방법 3: 벡터를 데이터 프레임으로 변환한 다음 $ 연산자를 사용하여 요소에 액세스

다른 방법은 먼저 벡터를 데이터 프레임으로 변환한 다음 $ 연산자를 적용하는 것입니다. as.data.frame() 함수를 사용하여 벡터를 데이터 프레임으로 변환할 수 있습니다. 이 함수의 구문은 다음과 같습니다.

통사론: as.data.frame(객체)

매개변수:

  • 객체는 벡터 또는 행렬을 나타냅니다.

반환 유형:

  • 벡터를 반환합니다.

아르 자형




# Define a vector> vect <->c>(1, 2, 3, 4, 5)> > # Set integers names> names>(vect) <->c>(>'first'>,>'second'>,>'third'>,> >'fourth'>,>'fifth'>)> > # Transform the vector to data frame> dataframe <->as.data.frame>(>t>(vect))> > # Access the third element> dataframe$third>

사용자 이름

>

>

산출: