2つの別々の列に基づく値の集計

AN

私はdfを持っています(部分的に以下にリストされています)。

    account    company           sum
1    202003         B01        40.50
2    208001         B01    -71596.73
3    280250         B01     -6652.70
4    200001         B13     44362.77
5    202001         B13     13874.25
6    204001         B13      5744.20
7    204102         B13       295.00
8    285091         B13    317145.15
9    286101         B13     11471.13
10   298001         B13    396096.50

df1$sum次の基準に基づいての数値を新しいデータフレームに追加しようとしています。会社ごとに(B01およびB13^ 20df1$sumdf1$accounts始まるすべてのアカウントの列を集計し、それを呼び出す必要がありますdf2$Expenses1(この例では、こと202003208001会社のためB01)。

別に私は^ 28と^ 29で始まるアカウントのすべてを集約し、それを呼び出す必要がありますdf2$Expenses2(ので会社のためにB01それが唯一のアカウントになり280250、会社のためB13には、アカウントの合計となり285091286101そして298001)。

最終的に、新しいデータフレームdf2は次のようになります。

Company   Expenses1   Expenses2
 B01     -71,556.23    -6,652.7
 B13      64,276.22  724,712.78    

これで本当に助けていただければ幸いです!

IceCreamToucan

整頓された

library(tidyverse)
df %>% 
  group_by(company) %>% 
  summarise(Expenses1 = sum(sum*grepl('^20', account)),
            Expenses2 = sum(sum*grepl('^28|^29', account)))
# # A tibble: 2 x 3
#   company Expenses1 Expenses2
#   <chr>       <dbl>     <dbl>
# 1 B01        -71556   -  6653
# 2 B13         64276    724713

データテーブル付き

library(data.table)
setDT(df)

df[, lapply(c(Expenses1 = '^20', 
              Expenses2 = '^28|^29'), 
            function(patt) sum(sum*grepl(patt, account)))
   , by = company]

#    company Expenses1 Expenses2
# 1:     B01 -71556.23   -6652.7
# 2:     B13  64276.22  724712.8

本当に2つのグループしかない場合は、別のグループ化変数を作成してから、dcastまたはspread例を使用できます。

df[, .(Expenses = sum(sum))
   , by = .(company, 
            acct_type = paste0('Expenses_', ifelse(grepl('^20', account), '20', 'other')))] %>% 
  dcast(company ~ acct_type)


#    company Expenses_20 Expenses_other
# 1:     B01   -71556.23        -6652.7
# 2:     B13    64276.22       724712.8

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

値に基づく2つのテーブル列の合計

分類Dev

別の列の値に基づく1つの列の平均値

分類Dev

MySQL:別の列の値に基づく列の合計

分類Dev

別の列の値に基づく列の累積合計(R)

分類Dev

2つの列に基づく最大値

分類Dev

列の値に基づくパンダの集計減算

分類Dev

2つの別々の列の日付範囲に基づく合計

分類Dev

別の列の集計に基づいて、1つの列にNULL値を入力する

分類Dev

文字列値に基づくデータの集計

分類Dev

別の列に基づく合計

分類Dev

別のテーブルPySpark / SQLの日時列に基づく列の集計

分類Dev

rの2つの列に基づくdelimに基づく個別の行

分類Dev

集計?別のテーブルの行のリスト全体に基づく列の値。列名は2番目のテーブルと一致します。

分類Dev

別の列の特定の値の計算に基づく新しい列

分類Dev

別の列の特定の値の計算に基づく新しい列

分類Dev

別の列の値に基づいて行のみを集計します

分類Dev

パンダ:別の列の値に基づいて列を集計します

分類Dev

2つの列に基づくrの累積合計

分類Dev

位置桁の合計(位置に基づく2つの数値の桁の合計)

分類Dev

2つの列名に基づく累計

分類Dev

MS Excel-別の列の「id値」に基づく列の累積合計?

分類Dev

Mongo-名前に基づく値の合計の集計

分類Dev

カスタム関数で集計を使用する(別の列に基づく値を使用する)

分類Dev

別の列の値に基づいて1つの列を合計します

分類Dev

別の列の値に基づく1つの列のExcel連結

分類Dev

別の列の値に基づく1つの列のpysparkラグ関数

分類Dev

別の列の値に基づくjqxgrid編集可能プロパティ

分類Dev

Cosmos DBの計算列、別の列に基づく列

分類Dev

SQL-特定の列の集計に部分的に基づく結果

Related 関連記事

  1. 1

    値に基づく2つのテーブル列の合計

  2. 2

    別の列の値に基づく1つの列の平均値

  3. 3

    MySQL:別の列の値に基づく列の合計

  4. 4

    別の列の値に基づく列の累積合計(R)

  5. 5

    2つの列に基づく最大値

  6. 6

    列の値に基づくパンダの集計減算

  7. 7

    2つの別々の列の日付範囲に基づく合計

  8. 8

    別の列の集計に基づいて、1つの列にNULL値を入力する

  9. 9

    文字列値に基づくデータの集計

  10. 10

    別の列に基づく合計

  11. 11

    別のテーブルPySpark / SQLの日時列に基づく列の集計

  12. 12

    rの2つの列に基づくdelimに基づく個別の行

  13. 13

    集計?別のテーブルの行のリスト全体に基づく列の値。列名は2番目のテーブルと一致します。

  14. 14

    別の列の特定の値の計算に基づく新しい列

  15. 15

    別の列の特定の値の計算に基づく新しい列

  16. 16

    別の列の値に基づいて行のみを集計します

  17. 17

    パンダ:別の列の値に基づいて列を集計します

  18. 18

    2つの列に基づくrの累積合計

  19. 19

    位置桁の合計(位置に基づく2つの数値の桁の合計)

  20. 20

    2つの列名に基づく累計

  21. 21

    MS Excel-別の列の「id値」に基づく列の累積合計?

  22. 22

    Mongo-名前に基づく値の合計の集計

  23. 23

    カスタム関数で集計を使用する(別の列に基づく値を使用する)

  24. 24

    別の列の値に基づいて1つの列を合計します

  25. 25

    別の列の値に基づく1つの列のExcel連結

  26. 26

    別の列の値に基づく1つの列のpysparkラグ関数

  27. 27

    別の列の値に基づくjqxgrid編集可能プロパティ

  28. 28

    Cosmos DBの計算列、別の列に基づく列

  29. 29

    SQL-特定の列の集計に部分的に基づく結果

ホットタグ

アーカイブ