このAnswerでは、alist()
空の要素を持つリストを作成する簡単な手段として an が提案されています。[
これの使用例は、手配された viaへの呼び出しに適したリストを構築することdo.call()
です。例えば:
x <- matrix(1:6, ncol = 2)
do.call(`[`, alist(x, , 2)) ## extract column 2 of x
[1] 4 5 6
回答を促す特定の質問alist()
では、オブジェクトに基づいて動的に空の引数を設定する必要がありましたshortdim
。
いくつの次元が存在するかを知っていれば、次のことができます
al <- alist( , , ) ## 3 arguments for a 2-d object
al[[1]] <- x
shortdim <- 1
al[[shortdim + 1]] <- 1:2 ## elements 1 & 2 of dim shortdim, plus all other dims
do.call(`[`, al)
> do.call(`[`, al)
[,1] [,2]
[1,] 1 4
[2,] 2 5
> x[1:2, ] ## equivalent too
[,1] [,2]
[1,] 1 4
[2,] 2 5
動的な長さのリストはvector()
、たとえばによって作成できます。
ll <- vector(mode = "list", length = length(dim(x)) + 1)
しかし、alist
そのように作ることはできません
> vector(mode = "alist", length = length(dim(x)) + 1)
Error in vector(mode = "alist", length = length(dim(x)) + 1) :
vector: cannot make a vector of mode 'alist'.
alist
必要に応じて後で入力できる動的な長さを作成する方法はありますか?