用户定义的函数将多个数据帧导出到全局环境中

User defined function export multiple data frames into global environment

我创建了一个函数,它计算各种患者数据的统计数据,除了输出图表外,它还生成包含每个患者汇总统计数据的数据框。

如果我复制并 运行 R 中的函数,输出对我可用。但是,我现在从单独的 R 脚本调用该函数,并且数据框不再可用。

有什么办法可以纠正这个问题吗?

例如,

test=function(a){
  A=a
  B=2*a
  C=3*a
  D=4*a
  DF=data.frame(A,B,C,D)
}

a=c(1,2,3,4)
test(a)

这不是 return DF,但如果我输入:

  a=c(1,2,3,4)
  A=a
  B=2*a
  C=3*a
  D=4*a
  DF=data.frame(A,B,C,D)

那么显然 DF 是 returned。有没有一种简单的方法可以解决此问题,以便 DF 可以从 test 函数获得?

尝试:

test=function(a){
  A=a
  B=2*a
  C=3*a
  D=4*a
  DF=data.frame(A,B,C,D)
}

a=c(1,2,3,4)
df<-test(a)
print(df)

通过将函数的返回值分配给一个新变量,它现在可以在全局 space.

中访问

如果您想将函数内的对象分配给全局环境以便于检索,那么您的运算符是“<<-”或“->>”以获取更多信息,请参阅:

?assignOps()

test <- function(a)
       A=a
       B=2*a
       C=3*a
       D=4*a
       DF <<- data.frame(A,B,C,D)
}

# trial your dummy data
a=c(1,2,3,4)
test(a)
DF

嘿,转眼间...它起作用了!在函数内写入 return(DF) 不会将您的数据框传送到全局环境。