あるテーブルのすべてのエントリに別のテーブルのすべてのエントリに関数を適用する

ヴィンセント・リジントン

すべてのアイテムを使用bandedlossfnするすべてのエントリに関数を適用したいloss.tibbandstib

library(tidyverse)
set.seed(1)
n <- 5
loss <- rbeta(n, 1, 10) * 100

loss.tib <- loss %>% as_tibble %>% mutate(loss = value) %>% mutate(lossid = 
row_number()) %>% select(lossid, loss)
bandstib <- tibble(bandid = seq(4),
                   start = seq(0, 75, by = 25),
                   end = seq(25, 100, by = 25))

bandedlossfn <- function(loss, start, end) {
  pmin(end - start, pmax(0, loss - start))
} 

以下の答えに従って、次のコードが計算を生成します。

loss.tib %>% 
mutate(
  result = map(
    loss, ~ tibble(result = bandedlossfn(.x, bandstib$start, bandstib$end))
    )
    ) %>% unnest

ただしbandid、map関数内のインデックスとして、さらにmap関数にを含めたいと思いfilter(!near(result,0))ます。

結果は次のようになります。

lossid  loss    bandid  result
1   21.6691088  1   21.6691088  
2   6.9390647   1   6.9390647   
3   0.5822383   1   0.5822383   
4   5.5671643   1   5.5671643   
5   27.8237244  1   25.0000000  
5   27.8237244  2   2.8237244   
セット

パッケージmap2から使用する可能性の1つはpurrr次のとおりです。

bandstib %>% 
  mutate(result = map2(start, end, ~bandedlossfn(loss.tib[[1]], .x, .y)))

出力をどのようにするかに応じて、たとえばを使用してそこから続行できますunnest

編集

map代わりにを使用して、逆に適用する方法は次のとおりですmap2

loss.tib %>% 
  mutate(result = map(value, bandedlossfn, start = bandstib$start, end = bandstib$end)) %>%
  unnest() %>% 
  mutate(bandid = rep(seq(4), n))

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

別のテーブルのエントリ数に基づいてテーブルを更新する方法

分類Dev

多対多の関係でテーブル上のすべてのエントリを取得する方法

分類Dev

テーブルのすべての行の特定の列にjqueryスクリプトを適用する

分類Dev

R:データフレーム内のすべてのエントリに関数を適用する

分類Dev

別のテーブルに 2 つの特定のエントリがある 1 つのテーブルからすべてのエントリを選択します

分類Dev

別のSQLServerテーブルからの照合に基づいて列のすべてのエントリを更新する

分類Dev

SQLServerテーブルに週1回のエントリを適用する

分類Dev

Haskell関数をリストに適用するすべてのバリエーションを作成するための関数はありますか

分類Dev

Railsコンソール内のアクティブレコードクエリのすべての結果の列に「to_f」を適用する方法

分類Dev

テーブルエントリを別のテーブルに移動する

分類Dev

関連するテーブルに従って上位のエントリを並べ替えるために使用するlaravelクエリ

分類Dev

別のテーブルのすべての行に対して同じクエリをループする

分類Dev

別のモデルにエントリがあるすべてのオブジェクトを取得します

分類Dev

django:テーブルの属性を別のテーブルのエントリ数にする方法

分類Dev

Sequelize-あるテーブルから、別のテーブルに関連付けられていないエントリを取得する方法

分類Dev

すべてのリンクテーブルエントリを1つの行に結合します

分類Dev

パンダのピボットテーブルのすべての列に集計関数を適用する方法

分類Dev

列名を参照するすべてのテーブル/関数のPostgreSQLリスト

分類Dev

オブジェクトに直接質問する場合とすべてのテーブルエントリを反復する場合の属性値の違い

分類Dev

Wordpressオプションテーブルエントリのサブセットを保存するときにすべての値を削除する

分類Dev

dbで使用可能なすべてのテーブルのレコードのエクスポート数に関する4glクエリの進行状況

分類Dev

クエリのすべての結果をテーブルに挿入する

分類Dev

複数テーブルの条件に基づいてテーブルからエントリを削除する

分類Dev

PostgreSQL:別のテーブルのすべてのエントリに対応するエントリを持つすべてのタイプを選択します

分類Dev

selectステートメントのすべてのエントリのテーブルを更新します

分類Dev

PostgreSQLは、特定のIDの1つのテーブルからのエントリをカウントし、別のテーブルのレートで複数のエントリをカウントして、すべてを合計します。

分類Dev

別のテーブルのフィールドに関連するエントリを選択します

分類Dev

SQLAlchemyのすべてのクエリのすべてのテーブルにグローバルフィルターを適用します

分類Dev

すべてのリクエストをサブフォルダーhtaccessにルーティングします

Related 関連記事

  1. 1

    別のテーブルのエントリ数に基づいてテーブルを更新する方法

  2. 2

    多対多の関係でテーブル上のすべてのエントリを取得する方法

  3. 3

    テーブルのすべての行の特定の列にjqueryスクリプトを適用する

  4. 4

    R:データフレーム内のすべてのエントリに関数を適用する

  5. 5

    別のテーブルに 2 つの特定のエントリがある 1 つのテーブルからすべてのエントリを選択します

  6. 6

    別のSQLServerテーブルからの照合に基づいて列のすべてのエントリを更新する

  7. 7

    SQLServerテーブルに週1回のエントリを適用する

  8. 8

    Haskell関数をリストに適用するすべてのバリエーションを作成するための関数はありますか

  9. 9

    Railsコンソール内のアクティブレコードクエリのすべての結果の列に「to_f」を適用する方法

  10. 10

    テーブルエントリを別のテーブルに移動する

  11. 11

    関連するテーブルに従って上位のエントリを並べ替えるために使用するlaravelクエリ

  12. 12

    別のテーブルのすべての行に対して同じクエリをループする

  13. 13

    別のモデルにエントリがあるすべてのオブジェクトを取得します

  14. 14

    django:テーブルの属性を別のテーブルのエントリ数にする方法

  15. 15

    Sequelize-あるテーブルから、別のテーブルに関連付けられていないエントリを取得する方法

  16. 16

    すべてのリンクテーブルエントリを1つの行に結合します

  17. 17

    パンダのピボットテーブルのすべての列に集計関数を適用する方法

  18. 18

    列名を参照するすべてのテーブル/関数のPostgreSQLリスト

  19. 19

    オブジェクトに直接質問する場合とすべてのテーブルエントリを反復する場合の属性値の違い

  20. 20

    Wordpressオプションテーブルエントリのサブセットを保存するときにすべての値を削除する

  21. 21

    dbで使用可能なすべてのテーブルのレコードのエクスポート数に関する4glクエリの進行状況

  22. 22

    クエリのすべての結果をテーブルに挿入する

  23. 23

    複数テーブルの条件に基づいてテーブルからエントリを削除する

  24. 24

    PostgreSQL:別のテーブルのすべてのエントリに対応するエントリを持つすべてのタイプを選択します

  25. 25

    selectステートメントのすべてのエントリのテーブルを更新します

  26. 26

    PostgreSQLは、特定のIDの1つのテーブルからのエントリをカウントし、別のテーブルのレートで複数のエントリをカウントして、すべてを合計します。

  27. 27

    別のテーブルのフィールドに関連するエントリを選択します

  28. 28

    SQLAlchemyのすべてのクエリのすべてのテーブルにグローバルフィルターを適用します

  29. 29

    すべてのリクエストをサブフォルダーhtaccessにルーティングします

ホットタグ

アーカイブ