繁体   English   中英

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

[英]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)

这不会返回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被返回。 是否有一种简单的方法可以解决此问题,以便从test功能中可以使用DF

尝试:

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)

通过将函数的返回值分配给新变量,现在可以在全局空间中访问它了。

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

?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)不会将您的数据帧传递到全局环境。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM