我编写了一个函数CString
,可以计算不同数据集的真阳性率fun
和误报率aaa
。问题是虽然我已经在全局环境中的函数之外定义了这些值,但它们没有得到更新,也没有使用不同的数据集重置值。这是我的功能:
bbb
我想在此函数之外访问这些向量##Define in global environment
N <- 0
P <- 0
threshold <- seq(1,20, by=2)
aaa <- bbb <- 0
X=Y=0
fun <- function(dat){
threshold <- seq(1,20,by=2)
P = 0
N = 0
P <- sum(dat$V1==1) #True positive cases
N <- sum(dat$V1==0) #True negative cases
aaa <- bbb <- 0
for(i in 1:length(threshold)){ ##Do this for every threshold
X=Y=0
for(j in 1:nrow(dat)) { ##Evaluate every row
if(dat$V2[j] > threshold[i]) { ##Test variable
if(dat$V3[j]==1){X = X+1} ##(true positive)
else{Y=Y+1} ##Else Y + 1 (false positive)
}
}
aaa[i]= X/P
bbb[i] = Y/N
}}
和aaa
来分析它们。我还希望P,N等的值能够针对函数的每个不同评估重置,但这不会发生。我不应该首先在函数之外定义这些值吗?
谢谢!
答案 0 :(得分:1)
使用<<-
在功能范围之外进行更新