将命名项添加到命名列表 - 保证附加到列表末尾?

时间:2011-09-29 15:04:07

标签: r list undefined-behavior insertion named

将名称项添加到列表时,是否可以保证该项目将添加到列表的末尾?在实践中似乎是这种情况,但不确定这是否是一个危险的假设?

test = list()
test[[ "one" ]] = 1
test[[ "two" ]] = 2  # will always appear after "one"?
test[[ "three" ]] = 3  # will always appear after "two"?

2 个答案:

答案 0 :(得分:24)

如果没有记录(并且似乎没有记录),那么我就不会依赖它。您可以通过执行以下操作确保它显示在列表的末尾:

test <- list()
test <- c(test, one=1)
test <- c(test, two=2)
test <- c(test, three=3)

答案 1 :(得分:5)

我怀疑如果你深入研究R的C代码那么你会发现它是真的,但正如约书亚所说,它没有记录。您可以在R-dev上询问是否应记录此类行为 的意见。可能已经存在依赖于它的现有代码。