修改r中函数内的对象

时间:2017-08-29 19:17:50

标签: r

我是R.的新手。所以基本上我有两个问题:

  1. 在C ++中,我们可以将对象作为引用传递,以便能够从函数返回多个修改过的对象。什么是修改函数内多个对象的等效方法? (例如a中的bfyfunc
  2. 在下面的代码中,我想我可以访问b内的myfunc,我可以修改它。但显然,它是b的副本。是否有实际修改b内的myfunc
  3. a <- c(1,2,3)
    b <- c(4,5,6)
    
    myfunc <- function(a) {
      b <- b+1
      cat(b) # prints: 5 6 7
      a <- a+1
    }
    
    a <- myfunc(a)
    a
    b  # stil 4 5 6
    

1 个答案:

答案 0 :(得分:1)

您可以在函数myf中使用<<-代替<-assign('b', b+1, envir = globalenv())

myf <- function(a) { assign('b', b+1, envir = globalenv()) cat(b) # prints: 5 6 7 a <- a+1 }