如何使用R中的for循环从向量中提取特定元素

问题描述 投票:0回答:1

我有一个向量,想在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.5par[[2]] <- 0.5par2[[1]] <-0par2[[2]]<- 0.4

有什么帮助吗?

r list
1个回答
1
投票

这是因为你在循环中用两个时间序列索引

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
© www.soinside.com 2019 - 2024. All rights reserved.