R中的函数和for循环不在全局环境中分配/重置向量

时间:2015-11-22 00:12:24

标签: r

我编写了一个函数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等的值能够针对函数的每个不同评估重置,但这不会发生。我不应该首先在函数之外定义这些值吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

使用<<-在功能范围之外进行更新