Добавление именованного элемента в список имен - гарантированно добавляется в конец списка?

При добавлении именованного элемента в список гарантируется, что элемент будет добавлен в конец списка? На практике это похоже на то, но не уверен, что это опасное предположение?

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

Ответы

Ответ 1

Если это не задокументировано (и это не похоже), я бы не стал на него положиться. Вы можете убедиться, что оно появилось в конце списка, сделав что-то вроде:

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

Ответ 2

Я подозреваю, что если вы углубились в C-код R, тогда вы увидите, что это правда, но, как говорит Джошуа, его не документировано. Вы можете спросить у R-dev мнение о том, должно ли такое поведение документироваться. Возможно, уже существует существующий код, который зависит от него.