2025-01-01から1年間の記事一覧
3.3 ヘルスチェックを実装する anyhow@1.0.75を指定してインストールしたがanyhow@1.0.98がインストールされたようだ。 rustのバージョンに合わせて上がったようだ。 ヘルスチェックはOK 3.3.4 サーバーを起動する 3.4 ユニットテストを書く cargo-nextestを…
3.2 axumでサーバーを起動する cargo add axum@0.7.0 --features macros でインストール完了。続いて cargo add tokio@1.37.0 --features full cargo add --dev rstest@0.18.2 でインストール完了 3.2.3,3.2.4は飛ばしして3.2.5 簡易サーバーを起動するまで…
WindowsのWSL上で試すことにした。 rustupのインストールを行う。 rustc ver 1.86.0 rustup ver 1.28.1 がインストールされた。 リンカーはgccを利用するとのことなので sudo apt install gcc としたがエラーがでた。 sudo apt-get update実行後 再度インス…
第10章 日時型 10-2年/月/日/時刻/分/秒/曜日への変換 M年 = YEAR(MAX('reserve'[reserve_datetime])) M月 = MONTH(MAX('reserve'[reserve_datetime])) M日 = DAY(MAX('reserve'[reserve_datetime])) M時間 = HOUR(MAX('reserve'[reserve_datetime])) M分 = …
第9章 カテゴリ型 9-1カテゴリ型への変換 Csex_is_man = if( [sex]="man", TRUE(), FALSE() ) PowerQueryでもやってみる = Table.AddColumn(変更された型, "カスタム", each if [sex] = "man" then true else false)
第8章 数値型 8-7数値の補完 ISBLANK関数で除去できるか試してみたがCSVファイルから読み込んでいるためNoneという文字列と認識してしまっているので有効に動作しない。 単純な比較にしてNone文字列のある行を除去した。 1000行から892行になった。 TNULLの…
第8章 数値型 8-5外れ値の除去 T外れ値除去 = FILTER( 'reserve', ABS('reserve'[total_price] - AVERAGE('reserve'[total_price]))/STDEV.S('reserve'[total_price])<=3 ) 除去前が4,030行、除去後が3,932行に減った。
第8章 数値型 8-4正規化 DAXには正規化する専門の関数はないらしい STDEV.S(標本偏差)と平均値で算定する people_num_normal = VAR MeanValue = AVERAGE(reserve[people_num]) VAR StdDevValue = STDEV.S(reserve[people_num]) RETURN DIVIDE(reserve[peop…
第8章 数値型 8-3カテゴリ化による非線形な変化 age_rank = int('customer'[age]/10)*10 PowerQueryでもやってみる = Table.AddColumn(変更された型, "age_rank", each Number.RoundDown([age]/10)*10)
第8章 数値型 8-2対数化による非線形な変化 total_price_log = LOG10([total_price]/1000+1) LOG関数 number (必須): 対数を求める正の数。 base (省略可): 対数の底。既定値は 10。 LOG(100) // 既定の底 10 の対数 → 結果: 2 LOG(8, 2) // 底 2 の対数 → …
第7章 展開 7-1横持への変換 M予約数 = COUNTROWS('reserve') レポートビューでマトリックを選択して行にcustomer_idを、列にpeople_numを配置して、値にM_予約数を配置する。 PowerQueryでも行ってみる。 let ソース = Csv.Document(File.Contents("C:\User…
第5章 分割 5-1レコードデータにおけるモデル検証用のデータ分割 T交差検証 = var totalrow=COUNTROWS('production') return SAMPLE(totalrow*0.2,'production','production'[length]) ランダムに全体の20%を抽出
第4章 結合 4-2条件に応じた結合テーブルの切り替え 4-3過去データの結合 知識不足のため対応できず 4-4全結合 まずカレンダーを作成 カレンダー = ADDCOLUMNS( CALENDAR(date(2017,1,1),date(2017,3,31)) ,"日",DAY([Date]) ,"月", MONTH([Date]) ,"年月",(…
第4章 結合 4-1マスターテーブルの結合 reserve.csvとhotel.csvのJoinを扱う。ただしreserveからpeople_numが一人の条件で抽出したテーブルとhotelからis_businessがTrueの条件で抽出したものをJoinする。 行の抽出にはPowerQueryのM言語を使い。そのあとのJ…
第3章 集約 3-3極値、代表値の算出 テーブル関数ではなくメジャーで表現。 SUMMARIZE関数の第3引数に、あとで売上げの計算するのに必要な'reserve[total_price]'を指定した。 平均値 Mホテルごとの予約金額平均2 = var HotelWithSales= SUMMARIZE( 'reserve'…
第3章 集約 3-2合計値の算出 SUMMARIZE関数を使ったグルーピングで売り上げを合計。 reserve'[hotel_id]列とreserve'[people_num]列にグループ化をかけ、price_sum列を追加し、total_priceを合計している。 Tホテルごとの宿泊人数別の売上合計 = SUMMARIZE('…
第二章 抽出 2-3データ値に基づかないサンプリング csv/textで接続し4,030行、9列を読み込んだ、ヘッダは自動的に認識した。 サンプリングの抽出にSAMPLE関数を使用 。 全体の4030行のうち50%の2015行を抽出 Tランダムサンプリング = var totalrow=COUNTROWS…
第二章 抽出 2-1データ列指定による抽出 csv/textで接続し4,030行、9列を読み込んだ、ヘッダは自動的に認識した。 列の抽出にSELECTCOLUMNS関数を使用 。 T予約表 = SELECTCOLUMNS( 'reserve', 'reserve'[reserve_id], 'reserve'[hotel_id], 'reserve'[custo…