2013-07-16 4 views
1
는 R에서 다음을 수행 할 수있는 바로 가기 방법이 있지만 내가 R.에서이 일을하고

, 나는 그것을 체크 아웃 할 :다음 루프는 어떻게 작동합니까?

내가 for 루프에서 x의 인덱스 번호를 지정하지 않은 때문에
x <- c(7,6,8,7) 
    y <- 1 
    n <- length(x) 
    p=1 
    s = 0 
    for(i in 1:n){ 
      s = s + (x^p * y^p) 
    } 

    s 

, 나는 x의 첫 번째 요소 만 사용되는 것으로 추측했다. 그래서 테이블 제작 :

i  s= s + (x^p * y^p) 
    1  s= 0 + (7^1 * 1^1)=7 
    2  s= 7 + (7^1 * 1^1)=14 
    3  s= 14 + (7^1 * 1^1)=21 
    4  s= 21 + (7^1 * 1^1)=28 

을하지만 결과였다

s 
    [1] 28 24 32 28 

나는 어떤 방법으로이 결과를 일치하지 않을 수 있습니다. 어떻게 작동합니까?

+0

왜'의의 = s의 + (X^P는 * y를^p)를 사용하는'가 아니라'S <- S + (X^P는 * y를^P)는' –

+2

@LiranElisha 그것은 개인적인 취향이다 . 코드는 여전히 유효합니다 (동일). –

+0

프로그래밍 할 때 왜 추측합니까? 설명서를 읽으십시오. 추측을한다면 추측이 유효한지 체계적으로 점검해야합니다. – Roland

답변

4

x은 정수가 아닌 정수입니다. 신이 의도 한대로 x의 하위 집합이 필요합니다. x을 지정할 때 R은 첫 번째 요소 만 사용하지 않고 모두 사용합니다. 이것은 귀하의 솔루션을 흐리게하는 가정입니다.

x <- c(7,6,8,7) 
y <- 1 
n <- length(x) 
p <- 1 
s <- 0 
for(i in 1:n){ 
    s <- s + (x[1]^p * y^p) 
    message(s) 
} 

7 
14 
21 
28 
+0

사실 저는'C' 프로그램에 익숙합니다. 나는'R'에서 초보자입니다. 'print'와 같이 작동하는'massage' 함수가 있다고 제발 말씀해 주시겠습니까? – ABC

+0

@harry 네,'message'는'print'와 비슷한 기능을 가지고 있습니다. '? message'를 입력하면 세부 정보를 볼 수 있습니다. –

+0

대단히 고마워요. 당신은 정말로 좋은 사람입니다. – ABC

관련 문제