データフレームにネストされたリストの変数を列に変換する

Zeke

tbl_df1つの列が名前付き変数のリスト(それ自体はほとんどがリストです)であるforがあります。できれtidyverseばコードを使用して、これらの変数のセットに関数を適用し、これらの関数呼び出しのそれぞれの出力をデータフレームの新しい列に変換したいと思います(mutate_atこれらのネストされた変数の場合と同じです)。

たとえば、私の現在のデータは次のようなものです。

d <- tibble(
  l = list(list("a"=list("a1","a2","a3","a4"), 
                "b"=list("b1","b2","b3")),
           list("a"=list("x1","x2"), 
                "b"=list("y3")))
)

# A tibble: 2 x 1
  l         
  <list>    
1 <list [2]>
2 <list [2]>

複数の関数を指定する場合と同じ方法で、d$l(、aおよびb)の変数に関数を適用し、mutate_atそれらを作成した変数にちなんで名付けられた新しい列を自動的に作成したいと思います。たとえば、適用したい1つの関数は、それらの長さを新しい列として返します。

# A tibble: 2 x 3
  l            n_a   n_b
  <list>     <dbl> <dbl>
1 <list [2]>    4.    3.
2 <list [2]>    2.    1.

誰かがこれを行う簡単な方法を知っていますか?これまで私はこのようなことをしてきました:

d %>%
  mutate(n_a = purrr::map(l, ~length(.$a)) %>%
           purrr::simplify(),
         n_b = purrr::map(l, ~length(.$b)) %>%
           purrr::simplify())

しかし、のすべての変数についてそれを書き出す必要はありませんl(実際のデータには最大24個の変数があります)。

編集:また、明確にするために、長さを取得する例は、私が適用したい関数の1つにすぎません。の変数の任意のサブセット任意の関数を適用する、より一般的な方法が本当に必要ですl

サイドム

lengths要素をループせずに要素の長さを抽出するために使用できますそして、bind_cols代わりにmutate使用して、データフレームに複数の列を追加します。

d %>% bind_cols(map_dfr(.$l, ~ as.list(lengths(.))))

# A tibble: 2 x 3
#  l              a     b
#  <list>     <int> <int>
#1 <list [2]>     4     3
#2 <list [2]>     2     1

またはcomposeチェーンに使用as.listlengths

d %>% bind_cols(map_dfr(.$l, compose(as.list, lengths)))

# A tibble: 2 x 3
#  l              a     b
#  <list>     <int> <int>
#1 <list [2]>     4     3
#2 <list [2]>     2     1

このメソッドがリストの名前を動的にチェックすることに注意してください。特定の名前の要素が欠落している場合、結果はNAのようになります

d <- tibble(
    l = list(list("a"=list("a1","a2","a3","a4")),
             list("a"=list("x1","x2"), 
                  "b"=list("y3")))
)

d %>% bind_cols(map_dfr(.$l, ~ as.list(lengths(.))))

# A tibble: 2 x 3
#  l              a     b
#  <list>     <int> <int>
#1 <list [1]>     4    NA
#2 <list [2]>     2     1

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

複数のリストを含むネストされたデータフレームを使用可能なデータフレーム/ tibbleに変換する

分類Dev

ネストされたリストの要素をデータフレームに変換する

分類Dev

ネストされたnull値をデータフレームspark内の空の文字列に変換する

分類Dev

パンダのデータフレーム列をネストされたPython辞書に変換する

分類Dev

ネストされたJSONをデータフレームに変換する

分類Dev

深くネストされたリストをデータフレームに変換する

分類Dev

ネストされたリストをRでデータフレームに変換する方法は?

分類Dev

データフレームを深くネストされたリストに変換する

分類Dev

不規則なネストされたリストをデータフレームに変換する

分類Dev

パンダでネストされたリストをデータフレームに変換する方法

分類Dev

リストのリスト(ネストされたリスト)をデータフレームに変換する

分類Dev

データフレームのネストされたリスト列を辞書に変更しますか?

分類Dev

R:ネストされたリストをデータフレームに変換し、リストレベルの名前を取得する

分類Dev

ネストされた辞書をマルチレベルのデータフレームに変換する

分類Dev

PandasデータフレームをマルチレベルのネストされたJSONに変換する

分類Dev

フラットテーブルデータフレームをネストされた配列を持つデータフレームに変換する方法

分類Dev

ネストされたリストを持つGeojsonをpandasデータフレームに変換します

分類Dev

パンダの多重指数データフレームをネストされた辞書に変換する

分類Dev

ネストされたjsonをscalasparkのデータフレームに変換する

分類Dev

ネストされたdictをpysparkのデータフレームに変換する方法。

分類Dev

パンダのデータフレームをネストされたjsonに変換する方法

分類Dev

ネストされたjsonをrのデータフレームに変換する方法は?

分類Dev

ネストされたリストと辞書をデータフレームに変換しますか?

分類Dev

ネストされたリストをデータフレームに変換します

分類Dev

R:データフレーム列のネストされたJSONを同じデータフレームの追加の列に変換します

分類Dev

ネストされたリストをデータフレームに変換する:関心のある特定の要素のみを抽出します

分類Dev

内部キーを列に変換せずに、ネストされたdictをデータフレームに変換する方法

分類Dev

パンダのデータフレームをデータ型変換を使用してカスタムのネストされた辞書リストに変換する方法(10進数)

分類Dev

データセットのネストされたjson文字列をSparkScalaのデータセット/データフレームに変換します

Related 関連記事

  1. 1

    複数のリストを含むネストされたデータフレームを使用可能なデータフレーム/ tibbleに変換する

  2. 2

    ネストされたリストの要素をデータフレームに変換する

  3. 3

    ネストされたnull値をデータフレームspark内の空の文字列に変換する

  4. 4

    パンダのデータフレーム列をネストされたPython辞書に変換する

  5. 5

    ネストされたJSONをデータフレームに変換する

  6. 6

    深くネストされたリストをデータフレームに変換する

  7. 7

    ネストされたリストをRでデータフレームに変換する方法は?

  8. 8

    データフレームを深くネストされたリストに変換する

  9. 9

    不規則なネストされたリストをデータフレームに変換する

  10. 10

    パンダでネストされたリストをデータフレームに変換する方法

  11. 11

    リストのリスト(ネストされたリスト)をデータフレームに変換する

  12. 12

    データフレームのネストされたリスト列を辞書に変更しますか?

  13. 13

    R:ネストされたリストをデータフレームに変換し、リストレベルの名前を取得する

  14. 14

    ネストされた辞書をマルチレベルのデータフレームに変換する

  15. 15

    PandasデータフレームをマルチレベルのネストされたJSONに変換する

  16. 16

    フラットテーブルデータフレームをネストされた配列を持つデータフレームに変換する方法

  17. 17

    ネストされたリストを持つGeojsonをpandasデータフレームに変換します

  18. 18

    パンダの多重指数データフレームをネストされた辞書に変換する

  19. 19

    ネストされたjsonをscalasparkのデータフレームに変換する

  20. 20

    ネストされたdictをpysparkのデータフレームに変換する方法。

  21. 21

    パンダのデータフレームをネストされたjsonに変換する方法

  22. 22

    ネストされたjsonをrのデータフレームに変換する方法は?

  23. 23

    ネストされたリストと辞書をデータフレームに変換しますか?

  24. 24

    ネストされたリストをデータフレームに変換します

  25. 25

    R:データフレーム列のネストされたJSONを同じデータフレームの追加の列に変換します

  26. 26

    ネストされたリストをデータフレームに変換する:関心のある特定の要素のみを抽出します

  27. 27

    内部キーを列に変換せずに、ネストされたdictをデータフレームに変換する方法

  28. 28

    パンダのデータフレームをデータ型変換を使用してカスタムのネストされた辞書リストに変換する方法(10進数)

  29. 29

    データセットのネストされたjson文字列をSparkScalaのデータセット/データフレームに変換します

ホットタグ

アーカイブ