Dplyr を使用して R の行を配置、フィルター、グループ化する

Dplyr を使用して R の行を配置、フィルター、グループ化する

このチュートリアルは、 dplyrパッケージに関する説明の続きです。R で行を配置、フィルタリング、グループ化する方法を学習します。

前回のレッスンは列演算でした。今回は、 dplyr行操作に焦点を当てます。

データセットの並べ替えとフィルタリングレコードの集計と要約などの基本について説明します。このレッスンの概要を理解するには、MS Excel のピボット テーブルを思い浮かべてください。

目次

入門

RStudio で新しい R スクリプトを開きます。

列操作のレッスンと同様に、このデモンストレーションではLahman データセット パッケージを使用します。Google で簡単に検索してダウンロードしてください。

Lahman パッケージを R に取り込むには、library (Lahman)を実行します。dplyrパッケージを有効にするには、library (tidyverse)を実行します。また、R の命名規則のベスト プラクティスは小文字を使用することであるため、チームをチームに割り当てることにも注意してください

Dplyr を使用して R の行を配置、フィルター、グループ化する

行演算の基本関数

1. R に行を配置する

dpylr の最初の行の操作は、arrange()です。この関数を使用すると、行を並べ替えることができます。最初にデータ フレームdfを配置し、次に指定されたフィールドを配置することで機能します。

Dplyr を使用して R の行を配置、フィルター、グループ化する

たとえば、teamIDで並べ替えてみましょう。配置 (チーム、チームID)を実行します。

Dplyr を使用して R の行を配置、フィルター、グループ化する

降順に並べたい場合は、desc()関数を使用する必要があります。

たとえば、年によって降順に並べ替える場合は、配置 (teams, desc(yearID))を実行します。

Dplyr を使用して R の行を配置、フィルター、グループ化する

これを行うと、出力をTeamsに割り当て直すことにはなりません。コンソールに結果が表示されているだけです。

複数の条件で並べ替えることも可能です。たとえば、teamID、次に yearID で降順に並べ替える場合は、次のコードを実行するだけで済みます。

Dplyr を使用して R の行を配置、フィルター、グループ化する

行を並べ替えるとき、データは変更されません。データはただ移動されているだけです。何も追加または削除されていません。

2. R の行をフィルタリングする

フィルター( )関数は、選択した条件に応じてデータを追加または削除します。その基本的なコードは次のとおりです。

Dplyr を使用して R の行を配置、フィルター、グループ化する

例として、yearID が 2000 以上のデータをすべて取得してみます。フィルター関数の形式に従って、必要な情報を入力します。次に、実行します。これを新しいオブジェクトに割り当てることを忘れないでください。この場合、モダンに割り当てられました。

Dplyr を使用して R の行を配置、フィルター、グループ化する

行が実際にフィルタリングされたかどうかを確認するには、dim ()関数を使用できます。データ フレーム内の行と列の数を示します。

dim (teams)を実行すると、データ フレームに 2,955 行と 48 列があることがわかります。

Dplyr を使用して R の行を配置、フィルター、グループ化する

modernで関数dimを実行すると、列数は同じままで行数が 630 に減ったことがわかります。

Dplyr を使用して R の行を配置、フィルター、グループ化する

一部のレコードは 2000 年を超えているため、行は切り捨てられています。

複数のフィールドによる行のフィルタリング

R の複数のフィールドで行をフィルター処理することもできます。AND ステートメントORステートメントを使用する必要があります。

たとえば、エリアごとにチームをフィルターしてみましょう。この場合、新しいオブジェクトohioが作成されます。フィルター基準は、teamIDにクリーブランドシンシナティのみを含めるということです。

Dplyr を使用して R の行を配置、フィルター、グループ化する

等価性を確認するには、2 つの等号( == )を使用する必要があります。等号を 1 つだけ使用すると、R はそれを代入演算子とみなします。AND を表すにはアンパサンド ( & )を使用します

確認するには、dim関数を使用します。行数が 0 であることがわかります。

Dplyr を使用して R の行を配置、フィルター、グループ化する

これは、クリーブランドとシンシナティの両方を本拠地とするチームが存在しないことを意味します。

次は、クリーブランドORシンシナティに挑戦してみましょう。OR 演算子はパイプ演算子 ( | ) で表されます。したがって、必要なのはアンパサンドをパイプ演算子に置き換えて実行することだけです。その後、再度dim関数を実行します。

Dplyr を使用して R の行を配置、フィルター、グループ化する

行数は 0 ではなく 251 であることがわかります。

では、二重等号を使用するのを忘れて、代わりに 1 つだけを使用した場合はどうなるでしょうか? 何が起こるかというと、次のとおりです。

Dplyr を使用して R の行を配置、フィルター、グループ化する

RStudio は、二重等号の使用を促す非常に役立つエラー メッセージをコンソールに表示します。

3. R で行をグループ化して要約する

group by ( )関数を使用すると、選択した列ごとにレコードを集計し、その集計に基づいて別の列を集計できます。

group by ( ) 関数は次のアルゴリズムに従います。

Dplyr を使用して R の行を配置、フィルター、グループ化する

例として、teamIDでグループ化し、それを新しいオブジェクトに割り当ててみましょう。この場合、新しいオブジェクトはTeams_IDと呼ばれます。次に、印刷します。

Dplyr を使用して R の行を配置、フィルター、グループ化する

コンソールでは、最初の行に it's a tibbleと書かれていることがわかります。

Dplyr を使用して R の行を配置、フィルター、グループ化する

ティブル、基本的なデータ フレームを大幅に改良したものです。これは、すぐに利用できる機能を拡張および改善するパッケージの機能です。

2 行目はGroupsです。したがって、データはteamID列によってグループ化されるようになりました。

Dplyr を使用して R の行を配置、フィルター、グループ化する

これにより、これらのグループに対してSummary ()関数を使用できるようになります。

Dplyr を使用して R の行を配置、フィルター、グループ化する

注: Summary 関数には s または z を付けることができ、イギリス英語またはアメリカ英語の使用によって異なります。

たとえば、teams_IDを要約して、基本的な要約統計情報を取得してみましょう。各チームの勝利の平均、最小、最大を探してみましょう。「実行」を選択する前に、必ずコード全体を強調表示してください。

Dplyr を使用して R の行を配置、フィルター、グループ化する

コンソールに各チームの統計の概要が表示されることがわかります。これは、データを集計して要約するピボット テーブルに非常に似ています。


R のデータ フレーム: 基本を学ぶ
R の因子レベル: カテゴリ変数と順序変数を使用する
dplyr を使用して R で列を追加、削除、名前変更する

結論

要約すると、dplyr の 2 つの操作について説明しました。前回のチュートリアルでは、列の操作に焦点を当てました。一方、この現在のレッスンでは、RStudio のdplyrパッケージを使用して行操作を実行する方法を説明しました。具体的には、R で行を配置、フィルター、グループ化する方法を学びました。

次に学ぶべきことは、これら 2 つの操作を組み合わせる方法です。これまでに学習したすべての関数を使用すると、R でコードを作成するのに非常に役立ちます。ただし、より役立つテクニックはパイプラインです。これにより、すべてがスムーズに流れるようになります。したがって、次のチュートリアルも必ず確認してください。


Python における Self とは: 実際の例

Python における Self とは: 実際の例

Python における Self とは: 実際の例

RでRDSファイルを保存してロードする方法

RでRDSファイルを保存してロードする方法

R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。

最初の N 営業日の再考 – DAX コーディング言語ソリューション

最初の N 営業日の再考 – DAX コーディング言語ソリューション

この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。

LuckyTemplates のフィルター コンテキストの概要

LuckyTemplates のフィルター コンテキストの概要

この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。

LuckyTemplates を使用したビジネス レポート

LuckyTemplates を使用したビジネス レポート

これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて