2014-02-26 10 views
0

這裏是一個列表R:使用列表索引與應用,並代表命令

ll <- list(3L, 5L, 2L) 

,我想,輸出應爲如下

1, 1, 1, 2, 2, 2, 2, 2, 3, 3 

到目前爲止,我已經嘗試rep()命令,但我錯過了如何「索引」列表。

unlist(lapply(ll, function(x) rep(x, x))) 

什麼是解決方案或替代方法?

編輯: 它必須在應用函數內工作。

回答

1
> rep(1:3, ll) 
[1] 1 1 1 2 2 2 2 2 3 3 

解決OP評論:

> unlist(lapply(seq_along(ll), function(x) rep(x, ll[[x]]))) 
[1] 1 1 1 2 2 2 2 2 3 3 
+0

我會推廣爲'代表(seq_along(LL),選擇不公開(LL))'。 – A5C1D2H2I1M1N2O1R2T1

+0

@AnandaMahto,我認爲,但爲了簡單起見,最終棄權,但是,是的,這是更一般的解決方案。 – BrodieG

+0

它必須在應用函數中工作。 – Rico