function - 不知道为什么这 2 段 R 代码给出不同的结果。使用 function() 和 for()
问题描述
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
解决方案
我知道现在是什么问题。函数内部的变量是该函数的局部变量。为了在函数内部创建变量时解决这个问题,我需要使用 <<- 而不是 <-。
推荐阅读
- mysql - MySQL相同的列连接不同的行
- git - 当我尝试在 OSX 上缓存我的 Github 用户名和密码时没有收到钥匙串提示
- php - 在浏览器中访问时,file_put_contents 不起作用
- java - 三重条件while循环不起作用
- c - 哪个更快?取消引用指针或使用方括号?
- python - Gurobi 在处理小数字时会产生错误的解决方案
- javascript - 正则表达式以匹配 MM-DD-YYYY HH:mm:ss 格式的日期
- android - Android - 如何在服务器和客户端之间传输文件
- android - 如何在Android O系统设置中按字母顺序更改通知渠道(类别)的顺序?
- ios - iOS:如何在新的非键自定义窗口中添加浮动按钮?