不确定为什么这两个R代码给出不同的结果。使用function()和for()

时间:2018-06-17 19:11:04

标签: function for-loop

testing <- c(20,40,60,80)
w1u50 = 0
w1o50 = 0
test_my_function <- function(y){
for(x in y){
  if(x < 50){
    w1u50 <- w1u50 +1
  }else{
  w1o50 <- w1o50 +1
  }
}
}
test_my_function(testing)
w1u50
w1o50

我试图让w1u50和w1o50返回2的结果,就像在下面的脚本中一样。相反,他们会在上面的脚本中返回0个计数。

testing <- c(20,40,60,80)
w1u50 = 0
w1o50 = 0

for(x in testing){
  if(x < 50){
    w1u50 <- w1u50 +1
  }else{
  w1o50 <- w1o50 +1
  }
}

w1u50
w1o50

1 个答案:

答案 0 :(得分:0)

我知道现在的问题是什么。函数内部的变量是该函数的本地变量。要在函数内部创建变量时解决此问题,我需要使用&lt;&lt; - 而不是&lt; - 。