2017-02-16 97 views
-2

我有一些問題要正確返回R中函數中的變量。 在下面的示例中,我創建了一個「離開一出」交叉驗證函數。問題在於該函數似乎沒有以任何方式影響變量「mse」,它仍然保持最初設置的狀態。如何修改R中函數中的可變變量?

我試圖只從'for'行運行腳本,它運行良好,所有'mse'值都添加到變量中。

LOOCV Screenshot

怎麼說,通過使用功能,我不能修改我的變量?它與本地/一般變量有關嗎?

謝謝。

+0

您必須分配即。 'mse < - loocv(l)' – akrun

+4

我建議你參加'R'初學者課程。您需要將函數調用的結果分配給一個變量。 –

+0

...但也許有點清晰,以返回函數中的mse – user20650

回答

0

在R中,函數按值接收參數。這意味着函數不會從外部改變它們的參數。例如,下面的代碼

test <- function(x) {x=5} 
a <- 10 
test(a) 
print(a) 

打印:

[1] 10 

要從函數返回的東西,用

return(something)