【发布时间】:2015-04-15 08:07:48
【问题描述】:
我想编辑在父函数中定义的数据框 dat,就像在示例中一样,但是输出(从 main 返回)给出了一个未发生编辑的数据框。这显然是由于在 R 中滥用了全局变量,但有人可以解释一下为什么会这样以及我如何才能做到这一点?
indat <- data.frame(a = '0', b = '0')
main <-function(data){
assign("dat", data, envir = .GlobalEnv)
inner1()
inner2()
return(dat)
}
inner1<-function(){
print(dat$a)
dat$a <- '1'
return()
}
inner2<-function(){
print(dat$b)
dat$b <- '1'
return()
}
【问题讨论】:
标签: r