【发布时间】:2022-10-14 22:03:11
【问题描述】:
我有一些有效的代码,但我理解这依赖于不良做法。要使用问题的简单表示,请使用代码;
operation <- function(index){
a <- 0
if(data[index] == FALSE){
data[index] <<- TRUE
a <- a + 1}
a <- a + 1
return(a)
}
data <- c(FALSE, FALSE, FALSE)
x <- 0
x <- x + operation(sample(c(1,2,3),1))
x <- x + operation(sample(c(1,2,3),1))
x <- x + operation(sample(c(1,2,3),1))
x
“操作”函数有两个目的 - 首先,如果输入指定的值为 FALSE,则输出 2,如果 TRUE,则输出 1,重要的是,将输入更改为 TRUE,以便将来调用相同输入返回 1。
这样做的问题是操作函数引用了一个我知道我的用例将始终存在的全局变量,但假设可能不存在,并且该函数使用<<- 命令写入全局变量,我理解这是难以置信的不好的做法。
有没有更好的实践方法来实现相同的功能而无需将函数写入全局变量?
【问题讨论】:
标签: r