1つの列がリストであるデータフレームにデータがあります。R - リストのData_frameリストを整理して整理します
rand_lets <- function(){
sample(letters[1:26], runif(sample(1:10, 1), min=5, max=12))
}
example_data <- data.frame(ID = seq(1:5),
location = LETTERS[1:5],
observations = I(list(rand_lets(),
rand_lets(),
rand_lets(),
rand_lets(),
rand_lets())))
私は、リスト内の各要素が新しい列に分割されるように、リスト列を非公開にするには、エレガントなtidyverseアプローチを探しています:これは一例です。例えば、最初の行は次のようになります。もちろん
ID location observations observations.1 observations.3 observations.3 observations.4 observations.5 observations.6 observations.7 observations.8 observations.9
1 A "y" "b" "m" "u" "x" "j" "t" "i" "v" "w"
をリストエントリがので、空のセルがNAであるべきである異なる長さであってもよいです。
どうすればいいですか?
ロングフォームは、不自然なデータの方が便利ですが、実際に直接ワイドにしたい場合は、リスト列内のデータを構造化できます: 'example_data%>%mutate(observations = map(observations、〜as_data_frame (t(.x))))%>%unnest() ' – alistaire
素晴らしいです。これは 'map()'の使い方です。私は長いフォームがより有用であることに同意するが、私はチュートリアルで自分のデータセットを使用し、ワイドフォームからロングフォームに移行するのが良い最初のレッスンです。 –