gpt4 book ai didi

r - R中的静态变量

转载 作者:行者123 更新时间:2023-12-03 13:25:26 26 4
gpt4 key购买 nike

我在R中有一个函数,多次调用它。我想跟踪调用它的次数,并以此来决定在函数内部执行的操作。这是我现在所拥有的:

f = function( x ) {
count <<- count + 1
return( mean(x) )
}

count = 1
numbers = rnorm( n = 100, mean = 0, sd = 1 )
for ( x in seq(1,100) ) {
mean = f( numbers )
print( count )
}


我不喜欢我必须在函数范围之外声明变量计数。在C或C ++中,我可以做一个静态变量。我可以用R编程语言做类似的事情吗?

最佳答案

这是使用闭包的一种方法(从编程语言的角度来说),即将count变量存储在只能由函数访问的封闭环境中:

make.f <- function() {
count <- 0
f <- function(x) {
count <<- count + 1
return( list(mean=mean(x), count=count) )
}
return( f )
}

f1 <- make.f()
result <- f1(1:10)
print(result$count, result$mean)
result <- f1(1:10)
print(result$count, result$mean)

f2 <- make.f()
result <- f2(1:10)
print(result$count, result$mean)
result <- f2(1:10)
print(result$count, result$mean)

关于r - R中的静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1088639/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com