2015-01-03 4 views
1

다음 코드는 어떻게 작동합니까? R ?curve의 도움말 라인을 읽었을 때 예제가 있습니다. 그러나 나는 이것을 이해하지 못했다.R의 곡선 기능은 어떻게 작동합니까? - 곡선 함수의 예

for(ll in c("", "x", "y", "xy")) 
    curve(log(1+x), 1, 100, log = ll, 
     sub = paste("log= '", ll, "'", sep = "")) 

특히, 나는

for(ll in 1:10) 

, 같은 for-loop 내부 인수로 숫자 값에 익숙하고 그러나 다음 명령은 무엇을 말하고있다 :

for(ll in c("","x","y","xy")) 

c("","x","y","xy")

문자열의 벡터처럼 보인다 ? c("","x","y","xy")은 어떻게 작동합니까? curve 의 기능은 log(1+x) [여기에 x는 무엇입니까? 문자열 "x"? c("","x","y","xy")] 및 log=ll?

+3

커브의'log (1 + x)'부분은 루프의 직접적인 영향을받지 않습니다. 보시다시피,'ll'은 문자 벡터'c ("", "x", "y", "xy")'를 반복하고'curve' 내부의'log' 매개 변수에 제공됩니다. 매개 변수 설명은 다음과 같습니다. 'log 값은 음모 축을 지정하는 데 사용됩니다 (add = TRUE가 아닌 경우) 및'등 간격 '이 해석되는 방식입니다. x 구성 요소가 로그 확장을 나타내면 표현식 또는 함수 예를 들어'log = "x"'를 정의하면 x 축이 대수적으로 표시됩니다. –

+0

간단히 대답하면 매개 변수'll'는 문자 값을 "기대하는"(또는 정확하게는 수신으로 정의 된)'곡선 '의 공식 인수로 전달된다는 것입니다. –

+0

'for ("a", "b", "c")) print (글자)' – Gregor

답변

2

분명히, R의 curve 기능이 어떻게 작동하는지, 특히 log 인수에 대해이 (내가 BTW 질문을 마음에) 좀 더 그것으로 탐구 할 수있는 좋은 기회가 될 수 있도록 대한 스택 오버 플로우에 아무런 답변이 없다 :

모든 쉬운 부분의

첫째 :

c("","x","y","xy") 문자열 벡터 이상 공식적으로 문자 벡터이다.

for(ll in c("","x","y","xy"))은 반복 횟수를 4 회 반복하고 각각 ll'','x','y','xy'이 될 것입니다. 불행히도,이 예제가 빌드 된 방법은 ll = 'xy'에 대한 마지막 플롯 만 볼 수 있습니다. xlog(1+x)에서 무엇을 상징 하는가 모두의

  • 먼저 다음 curve 함수의 소스 코드에

    하자 다이빙 나머지는 답변을?

log(1+x)은 기능입니다. 만큼 n 인수는 x 벡터 (101 개) 요소를 포함 할 기본 그대로

x <- exp(seq.int(log(from), log(to), length.out = n)) #if the log argument is 'x' or 
x <- seq.int(from, to, length.out = n)    #if the log argument is not 'x' 
#in our case from and to are 1 and 100 respectively 

: x는 (소스 코드)은 다음 부분에서 curve 함수 내에서 작성되는 번호의 벡터이다. 분명히 의 log(1+x)log 인수의 'x'와 완전히 다릅니다. 그것은 언제나처럼 만들어 y에 관해서는 (소스 코드)

:

y <- eval(expr, envir = ll, enclos = parent.frame()) #where expr is in this case log(1+x), the others are not important to analyse now. 
#i.e. you get a y value for each x value on the x vector which was calculated just previously 
  • 둘째, log 인수의 목적은 무엇인가?

log 인수가 기록 될 x 또는 y 축하는 결정.'x'log 인수 인 경우 'y' 인수가 log 인 경우 x 축은 log 인수이고 'xy' 인수는 log 인수이고 log 인수가 '' 인 경우 로그 배율이 아님을 나타냅니다.

그것은 X 또는 Y 축선 중 어느 하나의 로그가 curveplot 함수의 함수로 계산되는 것으로 여기서 언급 될 필요 즉 curve 함수 plot 기능 만 래퍼이다.

log 인수가 'x'이면 (위 참조) 벡터 x의 로그 값의 지수가 계산되어 plot 함수 내부의 기록 된 값으로 반환됩니다.

P. 콘솔에 graphics::curve을 입력하면 curve 기능의 소스 코드를 볼 수 있습니다.

나는 이것이 이제 약간 이해되기를 바란다!

+0

좋은 요약! (+1) –

+0

@docendodiscimus 고맙습니다. :)! – LyzandeR