R 为什么我的简单代码没有';t在全局环境中存储变量
我有一个奇怪的问题,函数的值应该存储在全局环境中。相反,它返回一个不应该执行的行的错误R 为什么我的简单代码没有';t在全局环境中存储变量,r,R,我有一个奇怪的问题,函数的值应该存储在全局环境中。相反,它返回一个不应该执行的行的错误 DEV.OneCancerStrings <- function(Number){ if(!exists("Number")){ if(!exists("study_number")){ study_number <<- 1 specified_number <- study_number }else if(exists("study_
DEV.OneCancerStrings <- function(Number){
if(!exists("Number")){
if(!exists("study_number")){
study_number <<- 1
specified_number <- study_number
}else if(exists("study_number")){
study_number <<- study_number + 1
specified_number <- study_number
}
}else if(exists("Number")){
specified_number <- Number
}
}
我知道了!我需要使用'missing'来计算函数参数 这是一个更大函数的开始,但如果没有参数,则全局环境中不会存储任何内容。请注意,这通常被视为一个非常糟糕的想法。返回新计数器和研究编号,而不是修改全局状态。如果您需要一个保持可变状态的对象,请将功能封装在一个类中。从软件工程的角度看
DEV.OneCancerStrings()
Error in DEV.OneCancerStrings() :
argument "Number" is missing, with no default