2017-02-16 4 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)