我有一个向量,我想用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.5par的结果是正确的。然而,par2是错误的。这是重复的。
我想得到这个:
par[[1]] <- 0.5,par[[2]] <- 0.5,par2[[1]] <-0和par2[[2]]<- 0.4。
有什么帮助吗?
发布于 2018-03-05 08:36:35
这是因为在循环中两次使用序列进行索引。
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.4https://stackoverflow.com/questions/49106163
复制相似问题