이 기사에서는 $ 연산자가 원자 벡터에 대해 유효하지 않은 문제를 수정하는 방법을 살펴보겠습니다. 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> |
사용자 이름
>
>
산출: