関数としてフレームを渡すときに、dplyrのグループごとに変数を要約することはできません

robbieNukes

dplyrを使用して複数のデータフレームを関数に渡し、要約された変数を含むデータフレームを返すことを望んでいます。これは集計レベルでは問題なく実行できますが、係数でグループ化しようとすると、関数は集計全体に対して同じ値を返します。これが私が持っている例で、うまく機能しています:

compCalc <- function(frame,segment) {
     newFrame <- frame %>% 
     summarise(seg = segment,
          FTEs = sum(FTEs),
          total_TCC = sum(frame$totalCompensationCost),
          TCC_per_fte = sum(frame$totalCompensationCost)/sum(frame$FTEs),
          TCC_per_hour = sum(frame$totalCompensationCost)/sum(frame$hours),
          total_wages = sum(frame$totalWages))
return(newFrame)
}

次に、次のように関数を呼び出します。

nuSectorOverall <- compCalc(dfEx, "allNonUnion")

そして私はこのような素晴らしい出力を得る:

Overall
seg         FTEs     total_TCC    TCC_per_fte  TCC_per_hour total_wages 
allNonUnion 3980.559 185865849     46693.4     24.09153      171344280

ここで、group_by句を次のようにミックスに導入すると、次のようになります。

compCalcEmp <- function(frame,segment) {
    newFrame <- frame %>% 
        group_by(employeeGroup) %>%
            summarise(seg = segment,
                FTEs = sum(FTEs),
                total_TCC = sum(frame$totalCompensationCost),
                TCC_per_fte = sum(frame$totalCompensationCost)/sum(frame$FTEs),
                TCC_per_hour = sum(frame$totalCompensationCost)/sum(frame$hours),
                total_wages = sum(frame$totalWages))
          return(newEmpFrame)
  }

私は次の問題に遭遇します:

employeeGroup     seg      FTEs total_TCC TCC_per_fte TCC_per_hour     total_wages total_wages_per_fte
              <chr>   <chr>     <dbl>     <dbl>       <dbl>        <dbl>           <dbl>               <dbl>
1       Bargaining Unit overall  139.2841 185865849     46693.4     24.09153       171344280            43045.28
2 Management & Excluded overall  402.0311 185865849     46693.4     24.09153   171344280            43045.28
3             Non-Union overall 3439.2438 185865849     46693.4     24.09153   171344280            43045.28

ご覧のとおり、FTEを除いて、グループ化された変数ごとに同じ値を計算しています。

これに似た質問があるかどうか、長くて見づらいので、見つからなかった場合はお詫びします。どんな助けでも大歓迎です!

よろしくお願いします

r

aichao

パイプ内のframe$列を参照するために使用する必要はありません代わりにこれを試してください:framedplyr

compCalcEmp <- function(frame,segment) {
    newFrame <- frame %>% 
        group_by(employeeGroup) %>%
            summarise(seg = segment,
                FTEs = sum(FTEs),
                total_TCC = sum(totalCompensationCost),
                TCC_per_fte = sum(totalCompensationCost)/sum(FTEs),
                TCC_per_hour = sum(totalCompensationCost)/sum(hours),
                total_wages = sum(totalWages))
   return(newFrame)
}

group_byその場合frame、サブセットグループではなく全体に関して要約しているため、以前は機能していませんでした。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

テンプレート関数をstd :: applyに直接渡すことはできませんが、ラムダを介して渡すことはできます

分類Dev

Javaは、プログラムの繰り返しごとにブール関数の再生を停止することはできません

分類Dev

Javaは、プログラムの繰り返しごとにブール関数の再生を停止することはできません

分類Dev

グループごとにいくつかの変数を条件付きで要約する

分類Dev

ループ内の関数呼び出しに引数を渡すことができません

分類Dev

1回の呼び出しで、グループごとに複数の変数に複数の要約関数を適用します

分類Dev

forループの匿名関数に変数を割り当てることはできません

分類Dev

Pythonデータフレームは、列ごとにグループごとに関数を適用します

分類Dev

Django-DjangoフォームのIDをjavascript変数に渡すことはできません

分類Dev

R dplyr:すべての変数についてグループごとに完全なケースを要約します

分類Dev

DiscordJSの異なるスコープを介して変数を渡すことはできません

分類Dev

文字列のベクトルとして格納された変数を「by」グループ化するときにdata.tableを要約します

分類Dev

エラーヘルプ-UnityException:変数を宣言するときにこの関数を呼び出すことは許可されていません

分類Dev

関数の引数として参照を渡すことはできません

分類Dev

「While」ループは、数値の素因数を見つけるときにエラーを引き起こします。そして、このプログラムを多数で使用することはできません

分類Dev

テーブルのtd値をJS関数変数に渡すことができません

分類Dev

forEachとmapを使用して関数の配列に引数を渡すことはできません

分類Dev

アプリケーションごとに環境変数を条件付きで変更することにより、WindowsユーザーのDocumentsフォルダーにスパムフォルダーを作成するプログラムを停止します

分類Dev

コールバックを介して変数を渡すことも、関数にpromiseを置くこともできません

分類Dev

アプリ内の別のテンプレートからdjangoホームテンプレートに変数を渡すことはできません

分類Dev

リピーターContainer.ItemIndexを引数としてjavascript関数に渡すことができません

分類Dev

dplyr:しきい値変数ごとに要約行を追加します

分類Dev

スコープごとに複数のRectを作成することはできません

分類Dev

%in%を使用してリストをdplyrフィルターに渡すことはできません

分類Dev

「選択したフレームのプログラムカウンタを含む関数がありません」と表示されたときに、GDBにコードを逆アセンブルさせるにはどうすればよいですか?

分類Dev

ajaxによって他のphpファイルに変数を渡すことはできません

分類Dev

ajaxによって他のphpファイルに変数を渡すことはできません

分類Dev

関数内のグローバル変数を変更することはできません

分類Dev

HDFSでファイルごとのレプリケーション係数を指定して、可用性を向上させることはできますか

Related 関連記事

  1. 1

    テンプレート関数をstd :: applyに直接渡すことはできませんが、ラムダを介して渡すことはできます

  2. 2

    Javaは、プログラムの繰り返しごとにブール関数の再生を停止することはできません

  3. 3

    Javaは、プログラムの繰り返しごとにブール関数の再生を停止することはできません

  4. 4

    グループごとにいくつかの変数を条件付きで要約する

  5. 5

    ループ内の関数呼び出しに引数を渡すことができません

  6. 6

    1回の呼び出しで、グループごとに複数の変数に複数の要約関数を適用します

  7. 7

    forループの匿名関数に変数を割り当てることはできません

  8. 8

    Pythonデータフレームは、列ごとにグループごとに関数を適用します

  9. 9

    Django-DjangoフォームのIDをjavascript変数に渡すことはできません

  10. 10

    R dplyr:すべての変数についてグループごとに完全なケースを要約します

  11. 11

    DiscordJSの異なるスコープを介して変数を渡すことはできません

  12. 12

    文字列のベクトルとして格納された変数を「by」グループ化するときにdata.tableを要約します

  13. 13

    エラーヘルプ-UnityException:変数を宣言するときにこの関数を呼び出すことは許可されていません

  14. 14

    関数の引数として参照を渡すことはできません

  15. 15

    「While」ループは、数値の素因数を見つけるときにエラーを引き起こします。そして、このプログラムを多数で使用することはできません

  16. 16

    テーブルのtd値をJS関数変数に渡すことができません

  17. 17

    forEachとmapを使用して関数の配列に引数を渡すことはできません

  18. 18

    アプリケーションごとに環境変数を条件付きで変更することにより、WindowsユーザーのDocumentsフォルダーにスパムフォルダーを作成するプログラムを停止します

  19. 19

    コールバックを介して変数を渡すことも、関数にpromiseを置くこともできません

  20. 20

    アプリ内の別のテンプレートからdjangoホームテンプレートに変数を渡すことはできません

  21. 21

    リピーターContainer.ItemIndexを引数としてjavascript関数に渡すことができません

  22. 22

    dplyr:しきい値変数ごとに要約行を追加します

  23. 23

    スコープごとに複数のRectを作成することはできません

  24. 24

    %in%を使用してリストをdplyrフィルターに渡すことはできません

  25. 25

    「選択したフレームのプログラムカウンタを含む関数がありません」と表示されたときに、GDBにコードを逆アセンブルさせるにはどうすればよいですか?

  26. 26

    ajaxによって他のphpファイルに変数を渡すことはできません

  27. 27

    ajaxによって他のphpファイルに変数を渡すことはできません

  28. 28

    関数内のグローバル変数を変更することはできません

  29. 29

    HDFSでファイルごとのレプリケーション係数を指定して、可用性を向上させることはできますか

ホットタグ

アーカイブ