我有一个向量,想在R中使用for
循环函数提取该向量的特定元素。
这是我的尝试:
par <- list(0.5,0.5)
par2 <- list(0,0.4)
Param <- c(par, par2)
s <- length(par)
m <- length(par2)
for(i in 1:2){
par[[i]] <- Param[[i]]
par2[[i]] <- Param[(length(par)+1):length(Param)]
}
我懂了:
>
par2
[[1]]
[[1]][[1]]
[1] 0
[[1]][[2]]
[1] 0.4
[[2]]
[[2]][[1]]
[1] 0
[[2]][[2]]
[1] 0.4
> par
[[1]]
[1] 0.5
[[2]]
[1] 0.5
par
的结果是正确的。但是,par2
是错误的。它重复了。
我想得到这个:
par[[1]] <- 0.5
,par[[2]] <- 0.5
,par2[[1]] <-0
和par2[[2]]<- 0.4
。
有什么帮助吗?
这是因为你在循环中用两个时间序列索引
Param[(length(par)+1):length(Param)]
你可以使用+i
。
for(i in 1:2){
par[[i]] <- Param[[i]]
par2[[i]] <- Param[[length(par)+i]]
}
> par
[[1]]
[1] 0.5
[[2]]
[1] 0.5
> par2
[[1]]
[1] 0
[[2]]
[1] 0.4