我创建了一个函数,它可以计算各种患者数据的统计数据,并输出图表,生成包含每位患者汇总统计数据的数据框。
如果我在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
。有没有一种简单的方法可以解决这个问题,以便DF
函数可以使用test
?
答案 0 :(得分:0)
尝试:
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)
通过将函数的返回值分配给新变量,现在可以在全局空间中访问它。
答案 1 :(得分:0)
如果要将函数内的对象分配给全局环境以便于检索,那么您的运算符为“&lt;&lt; - ”或“ - &gt;&gt;”欲了解更多信息,请参阅:
?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
嘿presto ...它的作品!在函数中编写return(DF)
不会将数据框传递到全局环境。