將列表轉換為向量,同時保留空列表元素
當希望將列表轉換為向量或 data.frame 物件時,通常會刪除空元素。
這可能是有問題的,其中建立具有一些空值的所需長度的列表(例如,建立具有 n 個元素的列表以新增到 mxn 矩陣,data.frame 或 data.table)。可以無損地將列表轉換為向量,但保留空元素:
res <- list(character(0), c("Luzhuang", "Laisu", "Peihui"), character(0),
c("Anjiangping", "Xinzhai", "Yongfeng"), character(0), character(0),
c("Puji", "Gaotun", "Banjingcun"), character(0), character(0),
character(0))
res
[[1]] `character(0)` [[2]] [1] "Luzhuang" "Laisu" "Peihui" [[3]] `character(0)` [[4]] [1] "Anjiangping" "Xinzhai" "Yongfeng" [[5]] `character(0)` [[6]] `character(0)` [[7]] [1] "Puji" "Gaotun" "Banjingcun" [[8]] `character(0)` [[9]] `character(0)` [[10]] `character(0)`
res <- sapply(res, function(s) if (length(s) == 0) NA_character_ else paste(s, collapse = " "))
res
[1] NA "Luzhuang Laisu Peihui" NA "Anjiangping Xinzhai Yongfeng" NA [6] NA "Puji Gaotun Banjingcun" NA NA NA