$
索引付け演算子は、リストを名前で索引付けします。名前のないリストから最初の要素を取得したい場合はa
、a[[1]]
.
名前が指定されていない場合は、名前が自動的に追加される関数を作成できます。これは、機能する方法と同様data.frame
です (このバージョンはオール オア ナッシングです。いくつかの引数に名前が付けられている場合、残りの名前のないものには名前が付けられません)。
nlist <- function(...) {
L <- list(...)
if (!is.null(names(L))) return(L)
n <- lapply(match.call(),deparse)[-1]
setNames(L,n)
}
b <- c <- d <- 1
nlist(b,c,d)
nlist(d=b,b=c,c=d)
2 番目の質問については、答えは「はい」です。試してみましたか???
L <- list(a=1,b=2,c=list(d=5,e=9))
str(c(L))
## List of 3
## $ a: num 1
## $ b: num 2
## $ c:List of 2
## ..$ d: num 5
## ..$ e: num 9
str(c(L,recursive=TRUE))
## Named num [1:4] 1 2 5 9
## - attr(*, "names")= chr [1:4] "a" "b" "c.d" "c.e"
1 つ目は 2 つの数値と 1 つのリストを含むリストで、2 つ目は名前付きの数値ベクトルにフラット化されています。