Я, кажется, глубоко смущен тем, что составляет хорошую практику в R. Предположим, что у меня есть следующий код R:
f<-function()
{
g<-function(s)
{
b<-b+1
s<-s+5
}
b<-10
g(2)
return(b)
}
На любом типичном языке это всегда будет возвращать b = 10, и, насколько мне известно, типичный способ заставить f распознать, что g модифицирует b, состоит в использовании глобальных переменных. Однако, насколько я могу судить, в R это обычная практика избегать глобальных переменных везде, где это возможно. Это заставляет меня спросить, как я должен изменить f так, чтобы он выводил b = 11 без использования глобальных переменных? Кажется, у меня либо очень глубокое недопонимание, либо я не знаю об очень важной идее.