R语言函数改变函数外变量

[复制链接]
51data 发表于 2020-9-3 22:33:48 | 显示全部楼层 |阅读模式
a<-2
b<-3
f<-function(t)
{
  a<-a+b+t
  print(a)
}


a、b为函数外变量,传统的赋值符号"<-"无法改变函数外变量。
> f(4)
[1] 9
对函数f输入参数4,则函数内a=a+b+t=2+3+4=9,所以f(4)的结果为9。
但函数外,单独运行print(a),显示a仍然等于2,函数没有改变函数外变量。
> print(a)
[1] 2

如果要改变函数外变量,可以使用全局变量赋值符号“<<-”,如下:
f<-function(t)
{
   a<<-a+b+t
   print(a)
}

这时候对函数f输入参数4,得到函数内结果9.
> f(4)
[1] 9

函数外运行print(a),显示a已经被改变了。
> print(a)
[1] 9

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

51data

管理员

  • 主题20
  • 帖子20
  • 积分194
发布新帖 立即签到

最新主题

主题排行

快速回复 返回顶部 返回列表