3
좋은 아침, 나는 (곡선() 함수를 사용하여) 곡선을 플롯 할 R. 문자열과 표현 간의 형식 변환에 붙어식으로,
문자열에 의해 곡선()를 정의 다음과 같이 문자열로 정의됩니다.
curve(x^3)
## Ok, generates a curve as expected
qq<-"x^3"
curve(qq)
Error in UseMethod("qq") :
no applicable method for 'qq' applied to an object of class "c('double', 'numeric')"
저는 첫 번째 인수가 표현식으로 간주됩니다.
curve(expr=expression(qq))
Error in curve(expr = expression(qq)) :
'expr' must be a function, or a call or an expression containing 'x'
이해가 수 : 표현()에 대한 이해는, 사람에서, 표현 "... 표현이 유형의 벡터 반환"이다 "인수 포함 (평가되지 않은)를."
문자열 qq의 내용으로 정의 된 방정식을 사용하여 곡선을 그리려면 어떻게해야합니까?
all.vars(substitute(expression(qq)))
#[1] "qq"
all.vars(substitute(x^3))
#[1] "x"
I :
substitute(expression(qq))
#expression(qq)
양식이 그것으로 필요 무엇을 추론 할 수 없습니다
감사
JF
실제로 솔루션이 작동합니다 (감사합니다!). 나는 아직도 내가 왜 그렇게하는지 확신 할 수 없다. 여기서 문자열을 함수로 변환하고 curve() 함수를 사용하여 함수를 처리합니다. 아무 문제가 없지만 왜 문자열 qq에서 표현식을 생성하여 curve()에 바로 사용할 수 없습니까? 나는 너무 많은 eval (parse())을 신경 쓰지 않지만 왜'curve (expr = eval (parse (text = qq)))'또는'curve (expr = parse (text = qq))'가 작동하지 않는지 ? – jfmoyen
내 대답의 첫 문장을 읽으십시오. 'curve '문서 이해를위한 – Roland
(+1) –