2017-09-08 16 views
2

リストのリストからサブリストを削除したい。例えば、私はこのリストのリストからサブリストを選択

mybiglist <- vector('list', 5) 
names(mybiglist) <- paste0('item:', seq_along(mybiglist)) 
for(i in seq_along(mybiglist)){ 
    a <- rbinom(8, 5, i/10) 
    b <- sum(c) 

    tmp <- list(binomial = a, total = b) 
    mybiglist[[i]] <- tmp 
} 

のような構造に大きなリストを持っていると言うと、私はサブリスト(アイテム全体:x)を見つけたい最高の合計をして、新しいオブジェクトとしてそのリストを保存します。

これを達成するための効率的な方法は何ですか?可能であれば、私は別のオブジェクトタイプに変換したくないのです。

答えて

2

使用:

mybiglist[[which.max(sapply(mybiglist, `[[`, 'total'))]] 

ができます:新しいオブジェクトにそれを割り当て

$binomial 
[1] 4 2 2 5 5 1 3 2 

$total 
[1] 24 

だけでなく、あなたに新しいリストが表示されます:

> new <- mybiglist[[which.max(sapply(mybiglist, `[[`, 'total'))]] 
> class(new) 
[1] "list" 
関連する問題