我在R中工作,想將矢量傳遞給函數。向量給出了一系列for循環的最大值。如果矢量是(3,4,6,5),那麼應該運行下面的代碼。所以for循環的數量取決於傳遞給函數的向量的長度。然後針對每種可能性,計數器被輸入到另一個函數fn。爲下面的可能的fn提供了一個例子。R中的循環變量數
S=0
fn = function(x){sum(x^2)}
for (i in 0:3){
for (j in 0:4){
for (k in 0:6){
for (l in 0:5){
S=S+fn(c(i,j,k,l))
}
}
}
}
我認爲遞歸是去這裏的路,但我沒有任何運氣想出來的,而且大部分的遞歸的例子,我已經看到了似乎是在一個非常高或非常低的水平。
任何想法解決這個問題的最佳方法是?
@ user20650如果你想要,你可以做到這一點。它不符合OP的規範,但需要更多的工作。它也只是將函數應用於整個展開的網格,而不是按行。在這種情況下,它給出了相同的答案,但是如果要以不同的方式處理列,則可能無法解決問題。 – Dason
歡呼,幾乎只要我張貼刪除:) – user20650
謝謝,這是非常有益的。我應該提到 - 矢量可能相當長,矢量中的值可能相當大。這是一個相對快速的解決方案還是可以改進? – user3666707