回答:
R
私のような初心者へのアドバイス:注意してください、以下は単一のオブジェクトのリストです :
> mylist <- list (1:10)
> length (mylist)
[1] 1
このような場合、リストの長さではなく、最初の要素の長さを探します。
> length (mylist[[1]])
[1] 10
これは「真の」リストです。
> mylist <- list(1:10, rnorm(25), letters[1:3])
> length (mylist)
[1] 3
また、R
はdata.frameをリストと見なしているようです:
> df <- data.frame (matrix(0, ncol = 30, nrow = 2))
> typeof (df)
[1] "list"
あなたがに興味がある可能性があり、そのような場合ncol()
とnrow()
いうよりlength()
:
> ncol (df)
[1] 30
> nrow (df)
[1] 2
けれどもはlength()
また、動作します(ただし、あなたのdata.frameは1列のみを持っているとき、それはトリックです):
> length (df)
[1] 30
> length (df[[1]])
[1] 2
空のリストを作成しましょう(必須ではありませんが、知っておくと便利です):
> mylist <- vector(mode="list")
その中にいくつかのものを入れましょう-3つのコンポーネント/インデックス/タグ(何と呼ぼうが)は、それぞれ異なる量の要素を持ちます。
> mylist <- list(record1=c(1:10),record2=c(1:5),record3=c(1:2))
リスト内のコンポーネントの数だけに関心がある場合は、次を使用します。
> length(mylist)
[1] 3
リストの特定のコンポーネントの要素の長さに関心がある場合は、以下を使用します(どちらも同じコンポーネントをここで参照します)。
length(mylist[[1]])
[1] 10
length(mylist[["record1"]]
[1] 10
リストのすべてのコンポーネントのすべての要素の長さに関心がある場合は、以下を使用します。
> sum(sapply(mylist,length))
[1] 17
を使用することもできますunlist()
。これは多くの場合、リストの処理に役立ちます。
> mylist <- list(A = c(1:3), B = c(4:6), C = c(7:9))
> mylist
$A
[1] 1 2 3
$B
[1] 4 5 6
$C
[1] 7 8 9
> unlist(mylist)
A1 A2 A3 B1 B2 B3 C1 C2 C3
1 2 3 4 5 6 7 8 9
> length(unlist(mylist))
[1] 9
unlist()は、リストに対して他の関数も実行する簡単な方法です。
> sum(mylist)
Error in sum(mylist) : invalid 'type' (list) of argument
> sum(unlist(mylist))
[1] 45