1
我在全局环境中有一个向量,我想创建一个函数,只修改该向量的一个元素。问题在于矢量太大,标准方法计算时间过长。看到我已有的功能,它们都太慢了。在函数中更改全局向量的元素
x <- rep(0, 1e8)
f1 <- function(n,a) {
x <- x # loads the vector to current environment
x[n] <- a # changes the position in current environment
x <<- x # saves the vector to global environment
}
f2 <- function(n,a) {
x[n] <<- a # changes the vector element in global environment
}
system.time(f1(1,1)) # 0.34
system.time(f2(2,1)) # 0.30
system.time(x[3] <- 1) # 0.00
我期待这样的事情:
assign('x[4]', 1, .GlobalEnv)
有什么不对第三命令检索
x
作为载体? – Jimbou@Jimbou我需要在函数内部有命令 –