r - 在R中的for循环中向列表中添加元素

标签 r list for-loop

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

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

我希望列表中的每个元素都具有与i相关的字段名称(例如,第二个元素应具有“element2”)

这该怎么做?我认为我的错误是get的用法

最佳答案

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

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

关于r - 在R中的for循环中向列表中添加元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27153263/

相关文章:

R Lattice/LatticeExtra 将 Barplot 与 Textplot 结合 - 标签未正确显示

r - 改变与列名匹配的值

r - 在 R 中,为什么不 -1 + 1 = 0

python - 从列表中删除重复的等价类

c - 在C问题中显示堆栈链表

r - 非常慢 For, if else if R 中的语句

r - l 在 R 中应用箱线图

opencv - 如何停止for循环(OpenCV)

javascript - 每行填充二维数组

c# - List<string> 内存不足异常