私はリストのエントリを含むリストを持っており、構造を転置する必要があります。 元の構造は長方形ですが、サブリストの名前は一致しません。ここでリストのリストを転記する
は一例です:
ax <- data.frame(a=1,x=2)
ay <- data.frame(a=3,y=4)
bw <- data.frame(b=5,w=6)
bz <- data.frame(b=7,z=8)
before <- list( a=list(x=ax, y=ay), b=list(w=bw, z=bz))
私が欲しいもの:
after <- list(w.x=list(a=ax, b=bw), y.z=list(a=ay, b=bz))
私は(任意のレベルで)結果のリストの名前を気にしないでください。
明らかにこれは明示的に行うことができます。
after <- list(x.w=list(a=before$a$x, b=before$b$w), y.z=list(a=before$a$y, b=before$b$z))
が、これは醜いであり、唯一の2x2の構造のために動作します。これを行う慣習的な方法は何ですか?
あなたが ''適用されます(D、1L、アイデンティティ)と、たとえば、行を収集することによって、データフレーム 'D 'を移調することができます。ですから、データフレームに 'before 'を強制してみてください。それを行うための1つの方法は、tibbleパッケージからの 'tibble :: as_tibble()'であるでしょう。つまり、@alistaireが示唆しているように、 'purrr :: transpose()'を使うと、基底Rの 'apply()'を使うよりも高速です。 (これはC言語で実装されています) – egnha
@egnhaここでは不可能です。リストエントリ自体はデータフレームです。 –
'd < - tibble :: as_tibble(前)'で試してください。 – egnha