x $ ed의 R 오류 : $ 연산자가 원자 벡터에 유효하지 않습니다.
내 코드는 다음과 달라집니다.
x<-c(1,2)
x
names(x)<- c("bob","ed")
x$ed
다음과 같은 오류가 발생하는 이유는 무엇입니까?
x $ ed 오류 : $ 연산자가 원자 벡터에 유효하지 않습니다.
$
(참조 ?"$"
) 에 대한 도움말 파일에서 다음을 읽을 수 있습니다.
$는 재귀 수업에서만 유효하며 아래의 재귀 수업에서만 설명합니다.
자, x
재귀 인지 확인해 봅시다
> is.recursive(x)
[1] FALSE
재귀 수업은 목록과 같은 구조를 가지고 있습니다. 벡터는 재귀 적이 지 않고 대신 원자입니다.
> is.atomic(x)
[1] TRUE
따라서 $
벡터 (비 재귀 객체)에 적용 할 때 오류가 발생 합니다. [
대신 다음을 사용 하세요.
> x["ed"]
ed
2
당신은 또한 사용할 수 있습니다 getElement
> getElement(x, "ed")
[1] 2
이 오류가 발생하는 이유는 vector
.
$
연산자 를 사용 간단히 간단히 data.frame
. 그러나이 특별한 경우에는 행이 하나만 있으므로이를 조옮김합니다. 않으면 오는가 bob
그리고 ed
난 당신이 원하는 생각되는 대신 열 이름의 당신의 행 이름이 될을 구석으로입니다.
x <- c(1, 2)
x
names(x) <- c("bob", "ed")
x <- as.data.frame(t(x))
x$ed
[1] 2
때문에 $
원자 벡터에서 작동하지 않습니다. [
또는 [[
대신 사용하십시오 . 에 대한 도움말 파일에서 $
:
기본 메소드는 원자 벡터, 배열 및 재귀 (목록과 같은, is.recursive 참조)에 대해 약간 다르게 작동합니다. $는 재귀 수업에서만 유효하며 아래의 재귀 수업에서만 설명합니다.
x[["ed"]]
작동합니다.
이 오류는 현재 R 환경에로드 된 패키지 중 하나에 의해 발생하는 충돌로 인해 모든 것이 라인에 있음에도 불구하고 발생합니다.
따라서이 문제를 해결해야 할 필요가없는 모든 패키지를 R 환경에서 분리하십시오. 발생했을 때 발생하는 문제가 발생했습니다.
detach(package:neuralnet)
결론 : 실행에 더 이상 필요하지 않은 모든 라이브러리를 분리하면 문제가 해결됩니다.
여기서 x는 벡터입니다. $ 연산자를 사용하는 비용 데이터 프레임으로 변환해야합니다.
x <- as.data.frame(x)
당신을 위해 일할 것입니다.
x<-c(1,2)
names(x)<- c("bob","ed")
x <- as.data.frame(x)
당신 같은 X의 출력을 제공합니다 :
밥 1
2 에드
, 당신에게 같은 X의 $ 에드의 출력을 줄 것입니다 :
NULL을
당신이 열 이름으로 밥과 에드를 원하는 경우에 당신은 같은 데이터 프레임 트랜스해야 할x <- as.data.frame(t(x))
코드가 그래서
x<-c(1,2)
x
names(x)<- c("bob","ed")
x$ed
x <- as.data.frame(t(x))
이제 x $ ed의 출력은 다음과 가변됩니다.
[1] 2
원자 컬렉션은 다음에서 액세스 할 수 있습니다. $
재귀 컬렉션은 그렇지 않습니다. 오히려 [[ ]]
사용됩니다
Browse[1]> is.atomic(list())
[1] FALSE
Browse[1]> is.atomic(data.frame())
[1] FALSE
Browse[1]> is.atomic(class(list(foo="bar")))
[1] TRUE
Browse[1]> is.atomic(c(" lang "))
[1] TRUE
R은 때때로 재미있을 수 있습니다
a = list(1,2,3)
b = data.frame(a)
d = rbind("?",c(b))
e = exp(1)
f = list(d)
print(data.frame(c(list(f,e))))
X1 X2 X3 X2.71828182845905
1 ? ? ? 2.718282
2 1 2 3 2.718282
참고 URL : https://stackoverflow.com/questions/23299684/r-error-in-xed-operator-is-invalid-for-atomic-vectors
'ProgramingTip' 카테고리의 다른 글
EPPlus 사용시 Column Type 설정 방법 (0) | 2020.11.30 |
---|---|
SSRS에서 새 보고서를 사용했을 때 "같은 키가있는 항목이 이미 추가되었습니다"라는 오류가 발생하는 이유는 무엇입니까? (0) | 2020.11.30 |
C ++로 파일 만들기 (0) | 2020.11.30 |
Java captcha 라이브러리에 대한 권장 사항 (0) | 2020.11.30 |
클래스가 java.lang.Enum인지 확인 (0) | 2020.11.30 |