2016-07-21 11 views
0

私はdata.frameオブジェクトとdata.frameオブジェクトを1セット持っています。私はそれらをまとめてリストにまとめようとしています。私は、この種の操作を行うためにunlistを試みましたが、最終的には正しい出力が得られません。誰も私にこれを可能なアイデアを与えることができますか?おかげでたくさんのdata.frameオブジェクトをrelistして既存のリストに追加します。

シミュレートされたデータ:

bleh <- data.frame(
    start=seq(1, by=9, len=18), end=seq(6, by=9, len=18), 
    ID=letters[seq(1:18)], score=sample(1:25, 18, replace = FALSE)) 

d.list <- list(
    foo <- data.frame(
    start=seq(2, by=11, len=20), end=seq(8, by=11, len=20), 
    ID=letters[seq(1:20)], score=sample(1:25, 20, replace = FALSE)), 
    bar <- data.frame(
    start=seq(4, by=11, len=25), end=seq(9, by=11, len=25), 
    ID=letters[seq(1:25)], score=sample(1:25, 25, replace = FALSE)) 
) 

所望の出力:

out <- list(blesh, d.list[1], d.list[2]) 

私はd.listを平坦化し、リスト内のすべてのオブジェクトの形状を変更した場合、それは概念によって正しくない、なぜならunlistメソッドはd.listを1つのオブジェクトとして平坦化します。誰もこの種の操作をするのを知っていますか?

答えて

1

concatenationメソッドcを使用すると、1つのデータフレームオブジェクトをリストにラップした後で使用できます。 cをリストに適用すると、最初のレベルでリストがフラット化され、サブリストが連結されます。これにより、必要なものが得られます。

out <- c(list(bleh), d.list) 

lapply(out, head, 3) 
# [[1]] 
# start end ID score 
# 1  1 6 a 16 
# 2 10 15 b 18 
# 3 19 24 c  7 

# [[2]] 
# start end ID score 
# 1  2 8 a 23 
# 2 13 19 b  1 
# 3 24 30 c 16 

# [[3]] 
# start end ID score 
# 1  4 9 a 16 
# 2 15 20 b  8 
# 3 26 31 c 10 
+1

ありがとうございます。このトリックは確かにうまくいきます。乾杯。 – user88911

+0

@ user88911問題はありません。喜んでそれが役立ちます。 :) – Psidom

関連する問題