2017-05-06 59 views
1

我想寫一個函數來求和分數。 x是分子和n最大的x。我想對x/c的所有分數進行求和,如果c = x+1和如果c == y停止。R中分數之和的函數

例如,如果x = 1y = 4

1/1 + 1/2 + 1/3 + 1/4 = 2.083333 

或者,如果x = 2y = 5

2/1 + 2/2 + 2/3 + 2/4 + 2/5 = 4.566667 

我嘗試了,而循環,但我認爲這是不差得遠:

score <- function(x, y){ 
    while (c < y){ 
    c <- x/1 
    c <- x/c+1 
    } 
} 
+0

獲得幻想和回答爲分數:'評分< - 函數(X,Y){MASS ::餾分(總和(X/seq.int(Y)))}' – alistaire

回答

2

編輯:儘可能避免在R中出現環路。

f <- function(x,y) x * sum(1/(1:y)) 
+0

這是令人誤解。你可以使用循環,對於簡單的程序應該避免使用循環 – Val

+0

對於初學者來說,一個好的經驗法則就是不要在R中使用循環。特別是在循環大型數據集時應避免使用循環。但是,我同意循環有時可能會正常。 – Tbar

+0

再次不同意,取決於您的任務,您可能必須使用循環。無論如何,你的答案中的陳述是錯誤的 – Val