【问题标题】:Adding elements to a list in for loop in R在R中的for循环中将元素添加到列表中
【发布时间】:2015-01-25 00:34:09
【问题描述】:

我正在尝试在 for 循环中将元素添加到列表中。如何设置字段名称?

L <- list() 
    for(i in 1:N)
    {
        # Create object Ps...
        string <- paste("element", i, sep="")
        L$get(string) <- Ps
    }

我希望列表中的每个元素的字段名称都依赖于 i(例如,第二个元素应该有“element2”)

如何做到这一点?我认为我的错误是get的用法

【问题讨论】:

  • 操作。剪切粘贴错误!我不想设置 i

标签: r list for-loop


【解决方案1】:

您似乎正在寻找类似以下的构造:

N <- 3
x <- list()
for(i in 1:N) {
    Ps <- i  ## where i is whatever your Ps is
    x[[paste0("element", i)]] <- Ps
}
x
# $element1
# [1] 1
#
# $element2
# [1] 2
#
# $element3
# [1] 3

虽然,如果您事先知道N,那么分配x 然后填充它而不是添加到现有列表中是更好的做法和效率更高。

N <- 3
x <- vector("list", N)
for(i in 1:N) {
    Ps <- i  ## where i is whatever your Ps is
    x[[i]] <- Ps
}
setNames(x, paste0("element", 1:N))
# $element1
# [1] 1
#
# $element2
# [1] 2
#
# $element3
# [1] 3

【讨论】:

  • 好的。我会做。 N大于900,代码会更高效
  • @HaddE.Nuff 如果您事先不知道尺寸,您有什么建议吗?例如,假设大小是随机的。
猜你喜欢
  • 2020-08-12
  • 2017-09-22
  • 1970-01-01
  • 2016-08-25
  • 2019-04-08
  • 1970-01-01
  • 2014-12-17
  • 2019-11-05
  • 1970-01-01
相关资源
最近更新 更多