タグ

Rに関するsh19910711のブックマーク (304)

  • メモ:前処理大全 7-5「不等式条件での結合」は dplyr なら join_by() が使えるよ - Technically, technophobic.

    少し前に改訂新版が出ましたね、前処理大全。 7-5「不等式条件での結合」は、旧版から変わっていないトピックですが、実は dplyr はこの数年の間に進化しています。 当時は非等価結合ができなかったんですが、バージョン1.1.0(2023年1月リリース)からできるようになっています。 具体的には、join_*() に join_by() という指定ができるようになっていて、これを使うと全組み合わせのうち条件を満たすものだけを残して join してくれます。 例題では、reservation にある reserved_at 列が campaign の starts_at 列と ends_at 列の期間に含まれていればいいので、以下のような書き方になります。 reservation |> left_join( campaign, join_by(between(reserved_at, star

    メモ:前処理大全 7-5「不等式条件での結合」は dplyr なら join_by() が使えるよ - Technically, technophobic.
    sh19910711
    sh19910711 2024/06/11
    "dplyr はこの数年の間に進化 / join_*() に join_by() という指定ができるようになっていて、これを使うと全組み合わせのうち条件を満たすものだけを残して join してくれます / 区間と区間を比較するような条件"
  • 『改訂新版前処理大全』の話と Apache Parquet の話 #TokyoR

    sh19910711
    sh19910711 2024/06/09
    "旧版ではR、Python、SQL + 改定新版ではBigQuery準拠のSQL、最新バージョンのPandas、Rの代わりにPolarsに高速な変更 / Arrow Tableもtidyverseで処理できる / RではarrowパッケージでApache Parquetを扱うことができます"
  • 期待の新カラーパレット {MetBrewer}:メトロポリタン美術館所蔵の作品の色合いをRで! - Qiita

    Twitterで以下のような新カラーパレットがアナウンスされていました。 このカラーパレットはニューヨークのメトロポリタン美術館所蔵の作品にインスパイアされたカラーパレットということです。個人的にとても好きな色合いだったので、どんな色があるのかプロットして見てみました。 上記GitHubレポジトリの方には作品とともにパレットの解説があるのでぜひご覧ください。 インストール 現在はGitHubからインストールできます。 devtools::install_github("BlakeRMills/MetBrewer") # あるいは remotes::install_github("BlakeRMills/MetBrewer") 使い方 met.brewerという関数でパレットを取得できます。引数nameにパレット名を、nに取得したいカラー数を、typeにdiscreteかcontinuous

    期待の新カラーパレット {MetBrewer}:メトロポリタン美術館所蔵の作品の色合いをRで! - Qiita
    sh19910711
    sh19910711 2024/06/09
    "ニューヨークのメトロポリタン美術館所蔵の作品にインスパイアされたカラーパレット / GitHubレポジトリの方には作品とともにパレットの解説がある / それぞれのパレット名が画家の名前" 2021
  • Rでの生存時間解析 - Qiita

    だいぶ前にRで生存時間分析するとどんな感じなのか学びながら触ってみたメモが残っていたので備忘録として記事化しました。 内容はあまり期待しないでください。ご指摘大歓迎です。 #生存時間解析とは イベントが起こるまでの時間や起こる確率を分析する手法。 薬効の確認、術後の生存日数、部品の故障までの時間、などをデータから分析する。 イベントが起こったかどうかはバイナリで持つと考える。 一般的に死亡をイベントと考えるが、起きて欲しいイベントが観測されるまでの期待的な時間という考え方で使う場合もある。 図にすると、観察開始からガントチャートを書いて死亡した場合に印をつける。 スタートをそろえてロリポップplotを行う場合もある。 生存時間解析の特徴的な考えに「打ち切り(censoring)」がある。 観察が途中で中止になった個体、イベントが発生せず試験期間が終わってしまった場合、が打ち切りとして扱われ

    Rでの生存時間解析 - Qiita
    sh19910711
    sh19910711 2024/06/09
    "生存時間: 薬効の確認、術後の生存日数、部品の故障までの時間 / 起きて欲しいイベントが観測されるまでの期待的な時間 / 生存率の列はより正確には「ある時点での条件付き生存率」と考える" 2022
  • MCMCサンプルを{dplyr}で操る - StatModeling Memorandum

    RからStanやJAGSを実行して得られるMCMCサンプルは、一般的に iterationの数×chainの数×パラメータの次元 のようなオブジェクトとなっており、凝った操作をしようとするとかなりややこしいです。 『StanとRでベイズ統計モデリング (Wonderful R)』のなかでは、複雑なデータ加工部分は場合によりけりなので深入りしないで、GitHub上でソースコードを提供しています。そこでは、ユーザが新しく覚えることをなるべく少なくするため、Rの標準的な関数であるapply関数群を使っていろいろ算出しています。しかし、apply関数群は慣れていない人には習得しづらい欠点があります。 一方で、Rのデータ加工パッケージとして、%>%によるパイプ処理・{dplyr}パッケージ・{tidyr}パッケージがここ最近よく使われており、僕も重い腰を上げてやっと使い始めたのですが、これが凄く使い

    MCMCサンプルを{dplyr}で操る - StatModeling Memorandum
    sh19910711
    sh19910711 2024/06/08
    "apply関数群は慣れていない人には習得しづらい / 図: {ggmcmc}パッケージや{bayesplot}パッケージに含まれる関数を使うと一撃で描くこともできます。しかし、練習のため自分で算出して作図" 2017
  • dplyr のアレを Pandas でやる - Qiita

    Pandas と dplyr のより網羅的な対比は、既に記事が出ています。 私が参考にしたものをこの記事の末尾で紹介していますので、詳しくはそちらをご覧ください 。 前置き|テーブルのキーの扱い方の違い Pandas を使い始める前に理解すべきこととして、dplyr と Pandas ではテーブルのキーの扱い方に大きな違いがあります。この違いを認識していなかった私はかなり苦戦しました…… 以下の2点を理解して (覚悟して?) おくと、学習コストが多少減るのではないでしょうか。 Pandas ではテーブルのキーが Index という別オブジェクトで管理されていること Pandas ではキーや列名に階層構造を持たせられること dplyr におけるキーの扱い R のデータフレームにはテーブルのキーを表す方法として row names という仕組みが用意されています。しかし、dplyr (が利用し

    dplyr のアレを Pandas でやる - Qiita
    sh19910711
    sh19910711 2024/06/08
    "melt メソッドを使えば tidyr::gather と同等の操作を実現 / tidyr::spread に対応するメソッドが Pandas には存在しないため、縦持ち横持ちの往復を SQL-style で貫き通すことができません" 2018
  • RとPython両方でJava VMを実装して気づいた言語の違い|igjit

    Java VMを実装したのは5年前にRで書いて以来2度目になる。(Rで実装したときのまとめ: Java VM 自作 方法) 異なる言語で同じものを作る過程で、両言語の違いや特徴を感じる場面があったので記録しておく。 Rではいろいろなものが値を返すRではいろいろなものが値を返す。 例えばRのif文は値を返すので結果を代入できる。 val <- if (cond) 1 else -1Pythonのif文だとこう書くことになる。 if cond: val = 1 else: val = -1Pythonで結果を代入したい場合は条件式 (三項演算子) を使う必要がある。 val = 1 if cond else -1もう一つの例としてswitchを見てみる。 Rの場合、switchの結果を代入できる。 name <- "two" val <- switch(name, one = 1, two =

    RとPython両方でJava VMを実装して気づいた言語の違い|igjit
    sh19910711
    sh19910711 2024/06/06
    "Java VMを実装したのは5年前にRで書いて以来2度目 / 異なる言語で同じものを作る過程で、両言語の違いや特徴を感じる場面があった / Rではオブジェクトシステムが複数存在し、解きたい問題に応じて選択する"
  • [R]質問紙と行動指標の相関分析

    @ なんばいきん · Thursday, Dec 17, 2020 · 8 minute read · Update at Dec 17, 2020 こちらはStanアドベントカレンダー17日目の記事です。 この記事はHainesの記事を参考に作成してます。より詳細な内容を知りたい人はこっち ここでは社会・行動科学にありがちな主観指標と行動指標の相関を、生成モデルの観点から推定することを目指す。このアプローチには、 ①前提を明示的にできる ②Priorの設定をドメイン知識に合わせれる ③不確実性を定量化できる といった利点がある。 2値で回答可能な質問紙Aをとるとする。そんで反応時間のような行動指標Bもとるとする。 ここで知りたいのはこの質問紙Aと行動指標Bの相関であるとする。 よくあるのは、質問紙Aのアイテムを合計して計算する平均値と行動指標Bの平均値とかを使って相関を出す方法だ。直観的

    sh19910711
    sh19910711 2024/06/06
    "社会・行動科学にありがちな主観指標と行動指標の相関を、生成モデルの観点から推定する / 2値で回答可能な質問紙A + 反応時間のような行動指標B / ここで知りたいのはこの質問紙Aと行動指標Bの相関" 2020
  • RMeCabみたいなRパッケージをCRANに投稿した話

    gibasaパッケージについて RMeCabみたいなことができる、gibasaというRパッケージを個人で開発しています。先日CRANに投稿できたので、2023年4月20日現在では、install.packages("gibasa")とするだけでもインストールできるようになっています。 モチベーションとしては、tidytext::unnest_tokensと同じような処理をMeCabを利用しつつできるようにしたいということで開発しています。また、とくに最近は、より簡単に利用をはじめられるようにしようと、すこしずつ改善を続けています。 開発の背景 RからMeCabを利用できるRパッケージとしては、すでにRMeCabがあります。徳島大学の石田基広先生が開発されているもので、わりと昔からあるパッケージです。 RMeCabは便利なパッケージですが、残念ながら、CRANには登録されていません。 技術

    RMeCabみたいなRパッケージをCRANに投稿した話
    sh19910711
    sh19910711 2024/06/06
    "RMeCab: ビルドするにはlibmecab.dllなどのバイナリファイルが必要 + 一方で、CRANポリシーは基本的にそうしたバイナリファイルをソースパッケージに含めることを禁止"
  • R {arules} によるアソシエーション分析をちょっと詳しく <1> - StatsFragments

    今週は系列パターンマイニング用 R パッケージ {arulesSequences} と格闘していた。使い方にところどころよくわからないポイントがあり、思ったよりも時間がかかってしまった。 関連パッケージである {arules} ともども、ネットには簡単な分析についての情報はあるが、 データの作り方/操作についてはまとまったものがないようだ。とりあえず自分が調べたことをまとめておきたい。2 パッケージで結構なボリュームになるため、全 4 記事分くらいの予定。 概要 まずはパターンマイニングの手法を簡単に整理する。いずれもトランザクションと呼ばれるデータの系列を対象にする。トランザクションとは 1レコード中に複数の要素 (アイテム) を含むもの。例えば、 POSデータ: 1トランザクション = POSレジの売上 1回。アイテムはそのときに売れた個々の商品。 アンケート調査: 1トランザクション

    R {arules} によるアソシエーション分析をちょっと詳しく <1> - StatsFragments
    sh19910711
    sh19910711 2024/05/27
    "アソシエーション分析: 複数のトランザクションからなるデータから、よく起きるパターンを発見・列挙する / {arules}: XのときYが発生しやすい + 順序は関係ない / {arulesSequences}: Xの後にYが発生しやすい + 順序が重要" 2014
  • Rを使った地理的回帰加重分析 - Qiita

    始めに 大阪府を対象に、過去(2000年〜2010年)にあった土地利用や人口数などの街の変化と、駅利用者数の間の関係を記述する試みをしました。利用するデータのほとんどはEstatと国土数値情報で公開されているものです。ツールは可視化用のQGISとデータ処理用のR言語を使います。 地理的回帰加重分析について 地理空間加重回帰分析法(Geographically weighted regression,GWR)は複数の変数間の関係を調べるために使われている。線形回帰が一つの回帰係数で対象地を全般的に説明するのに対して、GWRは空間内の異なる場所にに異なる関係を持つことを認め、空間的非定常性(Exploring Spatial)が考慮されるので、回帰係数やt-valueの空間的分布を地図化することができます。 各メッシュに対してこのようなデータを準備する メッシュごとに各土地利用の面積を計算する

    Rを使った地理的回帰加重分析 - Qiita
    sh19910711
    sh19910711 2024/05/26
    "GWR: 回帰係数やt-valueの空間的分布を地図化 + 空間内の異なる場所に異なる関係を持つことを認め、空間的非定常性(Exploring Spatial)が考慮 / 各メッシュに対して一つの回帰式が作成され、メッシュごとのt-valueも出力" 2021
  • Quartoで技術書を写経すると楽しい|igjit

    ソースコードはこちら。 コードの写経に今回はじめてQuartoを使ったのですが、これが快適だったので紹介します。 Quartoとは公式ページには、QuartoはPandocを基にした技術文書の出版システムです、とあります。 Markdownでコード混じりの文書を書いたら、コードブロックの中身を自動で実行してくれて、結果をHTMLとかPDFとかプレゼンスライドとかに書き出してくれるやつです。 https://quarto.org/Rユーザーにとっては次世代のR Markdownとのことです。 はじめかたhttps://quarto.org/docs/get-started/ のとおり、Quarto CLIツールをインストールします。 DockerでR、RStudioを動かす場合、最近のイメージならQuartoはインストール済みです。(rocker/tidyverse:4.2.1 で確認) Q

    Quartoで技術書を写経すると楽しい|igjit
    sh19910711
    sh19910711 2024/05/21
    "Quarto: Pandocを基にした技術文書の出版システム + 次世代のR Markdown / コード混じりの文書を書いたら、コードブロックの中身を自動で実行 / 複数の章からなる文書を書いて公開するのに便利" 2022
  • 【R】Apache Arrowとduckdbを試してみる - Qiita

    これはR Advent Calendar 2021の24日目の記事です(ということにさっきしました)(遅刻)。 https://qiita.com/advent-calendar/2021/rlang Apache ArrowとDuckDB arrowパッケージ Rのarrowパッケージ(バージョン6.0.0)に遂にjoin系の機能やdplyr::group_by()への対応が入りいよいよ日常的に使っていきたいと思ったのでどのくらい早いのか計ってみようと思います。 私はApache Arrowを最近知り、凄いプロジェクトがあるものだと衝撃を受けたクチです。 https://github.com/apache/arrow Apache Arrowについてはクリアコード社のサイトにて積極的に日語の情報発信されているのでまずそちらをご覧いただくのも良いと思います。 Apache Arrowのご

    【R】Apache Arrowとduckdbを試してみる - Qiita
    sh19910711
    sh19910711 2024/05/20
    "Rのarrowパッケージ(バージョン6.0.0)に遂にjoin系の機能やdplyr::group_by()への対応 / バージョン6.0.0の威力についてはApache Arrow公式ブログでも力を入れて解説 / 目玉機能の一つが、duckdbパッケージとの統合" 2021
  • Rのdbplyrでサブクエリを構築すると分かりやすい

    記事は最近読んだ次の記事からインスピレーションを得ました。 RのdplyrやPythonpolarsのようなパッケージでデータフレームの操作に慣れている人ならば、Rのdbplyrを使うことで、バグが少ない上に早くサブクエリを構築することができます。 何千回も実行するSQLならば時間をかけてチューニングされたSQLを構築したほうがよいと思いますが、分析の試行錯誤のサイクルを早く回したい場合など数十回ぐらいしか実行しないSQLならば、dbplyrから実行したほうがよいでしょう。 それではざっくり元記事に沿って例を説明します。 カラムのサブクエリ 大分類(major_category)で絞って、該当する作品を表示する例をお借りします。 まず素直にms_categoriesテーブルから該当するcategory_idを抜き出しておいて、%in%で求めると、 category_id_fiction

    Rのdbplyrでサブクエリを構築すると分かりやすい
    sh19910711
    sh19910711 2024/05/08
    "集約した情報を使ってフィルターするなどの処理はデータフレームの得意とする部分 / RのdplyrやPythonのpolarsのようなパッケージ: バグが少ない上に早くサブクエリを構築することができます"
  • パッケージを使わないで、一般化線形混合モデルのMCMCアルゴリズムを1から作る. - Data Science by R and Python

    こんにちは. 金曜日の夜になり、激しめの睡魔に襲われております. 先日のこちらの記事で公開したスライドの後半にあるシミュレーションで、地域差を考慮したPoisson - Normalモデルを構築しているのですが、そのコードを載せておきます。tomoshige-n.hatenablog.com MCMCを自分で設計 最近だと、MCMCはStanだったり、BUGSだったり、色々と便利なツールもできてきていて、パッケージを用いて推定している人も多いみたいです。が、僕は、なんというか、中で何してるのかが気になって、提案分布の設計とか実際のところ、どうしてるのかとか、ステップ幅をどうやって決めてるのかとか、自動的にやられてしまうのはどうも気持ち悪いので、自分で書いてみましょうということになってしまいがちなんですよね。 ということで、ポアソン分布で、個体差を考慮できるようなMCMCのアルゴリズムを書い

    パッケージを使わないで、一般化線形混合モデルのMCMCアルゴリズムを1から作る. - Data Science by R and Python
    sh19910711
    sh19910711 2024/05/07
    "意外に自分でMCMCを書くのは楽しかった / 計算を速くさせるための工夫とか / 特に、積はlogとれば和の計算というのは、数値計算では有効だなーと思いました / ガンマ関数、階乗の計算はさせるべきじゃありません" 2015
  • データ分析のためのデータ可視化入門を読んだので感想です。 - niszetの日記

    遅くなりました… www.kspub.co.jp @niszetが人生色々とgdgd進行しているため、読み終えるまでに時間かかってしまいましたが、最後まで読み終えたので読後の感想を書こうと思います。 なお、書は id:u_ribo さんより GitHub Sponsorsのお礼という事で頂きました。ありがとうございました。なんかすみません…。 ちょっと雑多な文章になりますが、ご容赦ください。 感想 読後感としては、文の文章が思ったより多く(付録をあわせて300ページを超えているので相応の分量ということですが)、基は通して読むタイプなのでそれなりに腰を据えて読むのが良いと思いました。洋書にありがち?な、脇道に逸れたような話はないので純粋に説明の文章量が多いということでしょうから、悪い意味ではないです。 5章がデータの整形の話で、その前までが比較的基的な可視化の話、6章がモデルデータ、

    データ分析のためのデータ可視化入門を読んだので感想です。 - niszetの日記
    sh19910711
    sh19910711 2024/05/06
    "良い可視化とそれをggplotでやるにはどうするのが良いのか?を一冊で学べる / 単純にggplotの文法を知りたいという目的なら「Rグラフィックスクックブック 第2版」がある" 2021
  • Extending ggplot2(和訳) - Qiita

    この記事は、Rのggplot2パッケージの「Extending ggplot2」というVignetteを訳したものです。原文はGPL-2ライセンスで公開されているggplot2パッケージに含まれ、著作権はHadley Wickhamに帰属します。この翻訳文にもGPL-2ライセンスが適用されます。 Note that the original document is provided under the license of GPL-2 and the copyright belongs to Hadley Wickham, one of the authors of ggplot2. このvignetteには、ggplot2 2.0.0で公式に提供される拡張メカニズムについて書きます。 このvignetteは、?Statや?Geomや?themeで読むことができる低レベルな詳細をまとめたも

    Extending ggplot2(和訳) - Qiita
    sh19910711
    sh19910711 2024/05/05
    "歴史的経緯: ggplot2の開発を始めたころ私はあまりよいRのプログラマではありませんでした / ggplot2: mutableなオブジェクトのためにprotoを使って始まり + mutatrや参照クラスやR6よりずっと昔 + protoだけが唯一の選択肢だった" 2016
  • Rで論文を書く実践的なテクニック集 (tinytable編)

    2022年に書いたRで論文を書く実践的なテクニック集のテーブル編をtinytable版で書き直したものです. Quartoで書かれた英語版もありますので, そちらも参考にしてください. kableExtra, gt から tinytable の時代へ 近年, Rで表を作成するためのパッケージとして kableExtra と gt が人気を集めてきました. 私は kableExtra を使って論文(\LaTeX)で表を作成し, gt を使ってスライド (revealjs) で表を作成しており, 以前行ったRワークショップやZennでの解説記事でもkableExtraを念頭においておりました. しかし, 2024年4月現在, tinytableが従来のパッケージと比べ軽くて使いやすく, 今後のスタンダードになっていくと確信しており, 以前書いた記事を更新する必要があると考えました. この記事で

    Rで論文を書く実践的なテクニック集 (tinytable編)
    sh19910711
    sh19910711 2024/05/01
    "tinytable: modelsummaryのメンテナーによって開発 + ミニマル(zero-dependency, baseRのみを使用)でありながら強力な表を作成するためのパッケージ / HTML や LaTeX だけでなく, PDF や Typst にもエクスポートできる"
  • [R] 予測モデルを作るには formula を活用せよ - ill-identified diary

    概要 formula オブジェクトは変数変換や交互作用項など, 多彩な表現ができる. xgboost や glmnet では model.matrix() を併用することで formula を利用できる. 統計モデリング/機械学習で予測モデルを構築するとき, 予測性能の向上のため, しばしば変数を入れ替えたり, 変換したりといった推敲が必要となる. R ではこういうときに formula オブジェクトを使うと, いちいちデータフレームに変換後の数値を追加したり書き換えたりする必要がなくなる. glmnet や xgboost など, formula が直接使えないものでも model.matrix() 等を併用すれば可能である*1. formula オブジェクトを解説した記事を探すと, かなり前から存在する. 例えば以下の記事. m884.hateblo.jp なお, 上記はタイトルが「f

    [R] 予測モデルを作るには formula を活用せよ - ill-identified diary
    sh19910711
    sh19910711 2024/05/01
    "変数を入れ替えたり, 変換したりといった推敲 / R ではこういうときに formula オブジェクトを使う / formula にはいろいろな構文 / xgboost や glmnet では model.matrix() を併用することで formula を利用できる" 2017
  • R の線形回帰 lm 関数の実装を辿る

    この記事は? この記事では、R にデフォルトで入っている stats パッケージの線形回帰関数 lm を題材に、R のパッケージ・関数がどのように実装されているかを辿っていく。 はじめに R のパッケージ・関数の使い方は、? コマンドや Web 上でドキュメントを読めば一通り知ることができる。 しかし、時としてどうしてもドキュメントには書かれていないような詳細を知りたくなるケースに遭遇することがある。 このような時には、実装コードを読みにいくことで疑問が解決することが多い。 また、定評のあるパッケージの実装を知ることで、それまで知らなかった書き方や言語仕様に触れることができ、コードを書く際の参考にもなる。 そこで、この記事では線形回帰の lm 関数に着目して、実装の辿り方を紹介するとともに、R パッケージの実装がどのように行われているかを見ていく。 実装を辿るうえでの着目ポイント 実装を辿

    R の線形回帰 lm 関数の実装を辿る
    sh19910711
    sh19910711 2024/04/30
    "ジェネリック関数: R のオブジェクトには class 属性を付与することができ + print 関数や summary 関数は、引数の class 属性に応じて振る舞いを変える + <ジェネリック関数名>.<class 属性名> という名前で定義"