R 用户定义函数将多个数据帧导出到全局环境中
我创建了一个函数,它计算各种患者数据的统计信息,并输出图,它生成包含每个患者汇总统计信息的数据帧 如果我在R中复制并运行该函数,则输出对我可用。但是,我现在从一个单独的R脚本调用该函数,数据帧不再可用 有没有办法纠正这个问题 比如说,R 用户定义函数将多个数据帧导出到全局环境中,r,function,dataframe,user-defined-functions,R,Function,Dataframe,User Defined Functions,我创建了一个函数,它计算各种患者数据的统计信息,并输出图,它生成包含每个患者汇总统计信息的数据帧 如果我在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
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=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)
test=功能(a){
A=A
B=2*a
C=3*a
D=4*a
DF=数据帧(A、B、C、D)
}
a=c(1,2,3,4)
df试试:
test=功能(a){
A=A
B=2*a
C=3*a
D=4*a
DF=数据帧(A、B、C、D)
}
a=c(1,2,3,4)
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
test如果要将函数中的对象分配给全局环境以便于检索,则运算符为“”,有关详细信息,请参阅:
?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
test如果test(a)
没有返回DF,可能您应该在函数中添加一行类似return(DF)
。(不知道你是不是这个意思。)这不是我的意思,但我能理解它是如何被理解的。我希望DF
存储在全局环境中,而不是显示在控制台中。如果您在函数中添加return(DF)
,并使用类似DF=test(a)
的函数,它应该按照您的预期操作。这是在R中做事情的惯用方法,而不是让函数创建对象作为副作用。如果你真的想按照你所描述的去做,那么如果测试(a)
没有返回DF,也许你应该在函数中添加一行类似return(DF)
。(不知道你是不是这个意思。)这不是我的意思,但我能理解它是如何被理解的。我希望DF
存储在全局环境中,而不是显示在控制台中。如果您在函数中添加return(DF)
,并使用类似DF=test(a)
的函数,它应该按照您的预期操作。这是在R中做事情的惯用方法,而不是让函数创建对象作为副作用。如果你真的想按照你描述的去做,这里有