• R语言
  • 函数传值问题(困扰我很久的问题)

我们都知道在R中的函数没有传址或者传递引用,而且不建议在R中使用<<-来访问全局变量,然后通过全局变量来传参量





但是有的时候我们必须让函数使用一些共有的参数时,我就不知道有什么好的解决方法,比如说:



lapply(1:10,function(m)

{



    lapply(1:10,function(n)

    {

         #无法访问上面一层的m,如果想访问,则需要方法二的处理方法:

    })

})





方法二:

m<-1

lapply(1:10,function(m)

{

    m<<-m

    lapply(1:10,function(n)

    {

         #无法访问上面一层的m,如果想访问,则需要方法二的处理方法:

    })

})



但是这种方法感觉比较不爽,请问大家遇到这种方法是怎样处理的?





没有太明白你的意思,虽然“不建议在R中使用<<-来访问全局变量”,但其实<<-并不是直接访问全局变量的,而是一层一层向上寻找匹配。而且你的第一个例子,注释的位置是可以直接访问m的。