【问题标题】:How to extract specific element from vector using for loop in R如何使用R中的for循环从向量中提取特定元素
【发布时间】:2018-03-05 08:26:10
【问题描述】:

我有一个向量,并想使用 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]] &lt;- 0.5par[[2]] &lt;- 0.5par2[[1]] &lt;-0par2[[2]]&lt;- 0.4

有什么帮助吗?

【问题讨论】:

  • 您的代码对我有用,这是输出:par2 [[1]] [[1]][[1]] [1] 0 [[1]][[2]] [1] 0.4 [[2]] [[2]][[1]] [1] 0 [[2]][[2]] [1] 0.4
  • @Terru_theTerror 是的,它现在可以工作了。但是,结果是错误的。

标签: r list


【解决方案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

【讨论】:

    猜你喜欢
    • 2021-12-05
    • 2021-12-12
    • 1970-01-01
    • 2014-01-24
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 2020-01-05
    • 2015-02-02
    相关资源
    最近更新 更多