dane = list(list(),list(),list())
for(n in 1:3){
for(m in 1:6){
dane[[n]][m] =c()
}
}
lengths(dane)
# [1] 5 5 5
為什么結果的子串列長度為 5,而不是 6?
更簡單:
x = list()
for(i in 1:3) x[i] = NULL
length(x)
# [1] 2
## why is this 2, not 3?
uj5u.com熱心網友回復:
在回圈中,元素實際上被洗掉,而不是NULL存盤在那里。如果您嘗試洗掉長度為零的串列的第n個元素,則串列中包含NULL個元素,則會創建一個包含元素的串列,直到倒數第二個元素。
嘗試
x <- list()
length(x)
# [1] 0
x[5] <- NULL
x
# [[1]]
# NULL
#
# [[2]]
# NULL
#
# [[3]]
# NULL
#
# [[4]]
# NULL
在哪里
length(x)
# [1] 4
要使用空串列元素初始化串列,請回憶在 R 中串列也是向量。
li <- vector(mode='list', length=3L)
li
# [[1]]
# NULL
#
# [[2]]
# NULL
#
# [[3]]
# NULL
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/518403.html
標籤:r列表for循环
