`sep`パラメータを渡して、separate_rows()をすべての列に適用するにはどうすればよいですか?

Khashir

非常に単純明快です;。区切り文字としてのsに基づいて、多くの列の値を独自の行に分割する必要があるデータフレームがあります

少し読んだ後、

df %>%
   Reduce(separate_rows_, x = colnames)

sepパラメータを渡すことができないことを除いて、機能します(したがって、空白、コンマ、およびその他の英数字以外の文字で区切ります)。

ある回答では、パラメーターを含む関数の修正バージョンを作成することを提案しましたが、それを機能させることができませんでした。

Reduce(f = function(y) separate_rows_(sep = ";"), x = colnames)

私は何が間違っているのですか?

そうは言っても、私の理想的な解決策は、それがよりクリーンであれば(多分map_dfr?)、きちんとした解決策になるでしょう。しかし、明らかにどの解決策もなしよりも優れています:)。

サンプルデータは次のとおりです。

structure(list(q1 = c("1,2,3,4", "2,4"), q2 = c("a,b", "e,f"), 
q3 = c("c,d", "g,h,z")), row.names = 1:2, class = "data.frame")

期待される出力:

structure(list(q1 = c("1", "1", "1", "1", "2", "2", "2", "2", 
"3", "3", "3", "3", "4", "4", "4", "4", "2", "2", "2", "2", "2", 
"2", "4", "4", "4", "4", "4", "4"), q2 = c("a", "a", "b", "b", 
"a", "a", "b", "b", "a", "a", "b", "b", "a", "a", "b", "b", "e", 
"e", "e", "f", "f", "f", "e", "e", "e", "f", "f", "f"), q3 = c("c", 
"d", "c", "d", "c", "d", "c", "d", "c", "d", "c", "d", "c", "d", 
"c", "d", "g", "h", "z", "g", "h", "z", "g", "h", "z", "g", "h", 
"z")), row.names = c(NA, -28L), class = "data.frame")

私が合理化したいプロセスは、次のようにすべての列名を渡す必要はありません。

output <- test %>% 
  separate_rows(q1, sep = ",") %>% 
  separate_rows(q2, sep = ",") %>% 
  separate_rows(q3, sep = ",")  
IceCreamToucan

を使用するpurrr::reduceと、指定された関数.f.initの最初の要素に.x適用し、次に.x、のすべての要素.xが使用されるまで、その関数をその出力との2番目の要素などに適用できます

.f引数式内で.xは前の出力(または.init最初の実行)で.yあり、.x引数の指定された要素ですreduce

library(tidyverse)

reduce(.init = df, .x = names(df), .f = ~separate_rows(.x, .y, sep = ','))
# equiv to: reduce(.init = df, .x = names(df), .f = separate_rows, sep = ',')

コメントのakrunノートのように、これはベースRでも以下のコードで実行できます(同じ出力)

Reduce(function(x, y) separate_rows(x, y, sep=","), names(df), init = df)

#    q1 q2 q3
# 1   1  a  c
# 2   1  a  d
# 3   1  b  c
# 4   1  b  d
# 5   2  a  c
# 6   2  a  d
# 7   2  b  c
# 8   2  b  d
# 9   3  a  c
# 10  3  a  d
# 11  3  b  c
# 12  3  b  d
# 13  4  a  c
# 14  4  a  d
# 15  4  b  c
# 16  4  b  d
# 17  2  e  g
# 18  2  e  h
# 19  2  e  z
# 20  2  f  g
# 21  2  f  h
# 22  2  f  z
# 23  4  e  g
# 24  4  e  h
# 25  4  e  z
# 26  4  f  g
# 27  4  f  h
# 28  4  f  z

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

複数のパラメーターを渡して使用するにはどうすればよいですか?

分類Dev

タイプを使用して特定のパラメーターのペアを適用するにはどうすればよいですか?

分類Dev

Rのすべての列に「forループ」を適用するにはどうすればよいですか?

分類Dev

`cellfun`(MATLAB)を使用して複数のパラメーターを持つ関数を適用するにはどうすればよいですか?

分類Dev

AutoNumericをすべてのセレクターに適用するにはどうすればよいですか?

分類Dev

2つのパラメーターを渡す再帰を使用して配列を反転するにはどうすればよいですか?

分類Dev

zshパラメータのすべての属性を出力するにはどうすればよいですか?

分類Dev

パラメータとして渡された配列を並べ替えるにはどうすればよいですか?

分類Dev

JqueryAjaxを使用してmvcActionResultにパラメーターを渡すにはどうすればよいですか?

分類Dev

文字列の配列にパラメータを渡してdelphiで機能させるにはどうすればよいですか?

分類Dev

パラメータとして渡された関数のパラメータタイプを検出するにはどうすればよいですか?

分類Dev

TRttiMethod.Invokeの文字列をパラメータとして適切に使用するにはどうすればよいですか?

分類Dev

Pandasを強制的に適用して、親データフレームのすべての列を返すにはどうすればよいですか?

分類Dev

保存された値を列番号パラメーターとして渡してawkで編集するにはどうすればよいですか?

分類Dev

分離するリスト、配列、または文字列をパラメータとしてredshiftに渡すにはどうすればよいですか?

分類Dev

JavaScriptで名前の文字列を使用してオブジェクトをパラメータとして渡すにはどうすればよいですか?

分類Dev

JSONをパラメータとしてAWSLambdaに渡すにはどうすればよいですか

分類Dev

TableNameは出力パラメーターですが、テーブルのすべての列を取得するにはどうすればよいですか?

分類Dev

Pythonで関数パラメーターとして:を渡すにはどうすればよいですか?

分類Dev

C ++で型をパラメーターとして渡すにはどうすればよいですか?

分類Dev

メソッドパラメータに渡された数に基づいて、カウント用の配列に新しいプロトタイプメソッドを定義するにはどうすればよいですか?

分類Dev

Javaで関数をパラメータとして渡すにはどうすればよいですか?

分類Dev

配列をパラメータとして使用するにはどうすればよいですか?

分類Dev

配列をパラメータとして指定するにはどうすればよいですか

分類Dev

Haskellで、制約をパラメトリックニュータイプにアタッチして、それを使用するすべてのクラスインスタンスに自動的に適用されるようにするにはどうすればよいですか?

分類Dev

nullptrをパラメーターとして渡すにはどうすればよいですか?

分類Dev

ヘルパーモジュール関数を配列内のすべての要素に適用するにはどうすればよいですか?

分類Dev

jquery ajaxを使用して、パラメーターを含むすべてのリストを表示するにはどうすればよいですか?

分類Dev

配列内のすべてのオブジェクトに1つのパラメーターを追加するにはどうすればよいですか?

Related 関連記事

  1. 1

    複数のパラメーターを渡して使用するにはどうすればよいですか?

  2. 2

    タイプを使用して特定のパラメーターのペアを適用するにはどうすればよいですか?

  3. 3

    Rのすべての列に「forループ」を適用するにはどうすればよいですか?

  4. 4

    `cellfun`(MATLAB)を使用して複数のパラメーターを持つ関数を適用するにはどうすればよいですか?

  5. 5

    AutoNumericをすべてのセレクターに適用するにはどうすればよいですか?

  6. 6

    2つのパラメーターを渡す再帰を使用して配列を反転するにはどうすればよいですか?

  7. 7

    zshパラメータのすべての属性を出力するにはどうすればよいですか?

  8. 8

    パラメータとして渡された配列を並べ替えるにはどうすればよいですか?

  9. 9

    JqueryAjaxを使用してmvcActionResultにパラメーターを渡すにはどうすればよいですか?

  10. 10

    文字列の配列にパラメータを渡してdelphiで機能させるにはどうすればよいですか?

  11. 11

    パラメータとして渡された関数のパラメータタイプを検出するにはどうすればよいですか?

  12. 12

    TRttiMethod.Invokeの文字列をパラメータとして適切に使用するにはどうすればよいですか?

  13. 13

    Pandasを強制的に適用して、親データフレームのすべての列を返すにはどうすればよいですか?

  14. 14

    保存された値を列番号パラメーターとして渡してawkで編集するにはどうすればよいですか?

  15. 15

    分離するリスト、配列、または文字列をパラメータとしてredshiftに渡すにはどうすればよいですか?

  16. 16

    JavaScriptで名前の文字列を使用してオブジェクトをパラメータとして渡すにはどうすればよいですか?

  17. 17

    JSONをパラメータとしてAWSLambdaに渡すにはどうすればよいですか

  18. 18

    TableNameは出力パラメーターですが、テーブルのすべての列を取得するにはどうすればよいですか?

  19. 19

    Pythonで関数パラメーターとして:を渡すにはどうすればよいですか?

  20. 20

    C ++で型をパラメーターとして渡すにはどうすればよいですか?

  21. 21

    メソッドパラメータに渡された数に基づいて、カウント用の配列に新しいプロトタイプメソッドを定義するにはどうすればよいですか?

  22. 22

    Javaで関数をパラメータとして渡すにはどうすればよいですか?

  23. 23

    配列をパラメータとして使用するにはどうすればよいですか?

  24. 24

    配列をパラメータとして指定するにはどうすればよいですか

  25. 25

    Haskellで、制約をパラメトリックニュータイプにアタッチして、それを使用するすべてのクラスインスタンスに自動的に適用されるようにするにはどうすればよいですか?

  26. 26

    nullptrをパラメーターとして渡すにはどうすればよいですか?

  27. 27

    ヘルパーモジュール関数を配列内のすべての要素に適用するにはどうすればよいですか?

  28. 28

    jquery ajaxを使用して、パラメーターを含むすべてのリストを表示するにはどうすればよいですか?

  29. 29

    配列内のすべてのオブジェクトに1つのパラメーターを追加するにはどうすればよいですか?

ホットタグ

アーカイブ