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 でコードを作成するのに非常に役立ちます。ただし、より役立つテクニックはパイプラインです。これにより、すべてがスムーズに流れるようになります。したがって、次のチュートリアルも必ず確認してください。


Power Automate の文字列関数: Substring と IndexOf

Power Automate の文字列関数: Substring と IndexOf

Microsoft フローで使用できる 2 つの複雑な Power Automate String 関数、substring 関数とindexOf 関数を簡単に学習します。

LuckyTemplates でビジュアル ツールチップを作成する

LuckyTemplates でビジュアル ツールチップを作成する

LuckyTemplates ツールチップを使用すると、より多くの情報を 1 つのレポート ページに圧縮できます。効果的な視覚化の手法を学ぶことができます。

Power Automate で HTTP 要求を行う

Power Automate で HTTP 要求を行う

Power Automate で HTTP 要求を作成し、データを受信する方法を学んでいます。

LuckyTemplates で日付テーブルを作成する方法

LuckyTemplates で日付テーブルを作成する方法

LuckyTemplates で簡単に日付テーブルを作成する方法について学びましょう。データの分析と視覚化のための効果的なツールとして活用できます。

2 つの方法による SharePoint 列の検証

2 つの方法による SharePoint 列の検証

SharePoint 列の検証の数式を使用して、ユーザーからの入力を制限および検証する方法を学びます。

SharePoint リストを Excel または CSV ファイルにエクスポート

SharePoint リストを Excel または CSV ファイルにエクスポート

SharePoint リストを Excel ファイルおよび CSV ファイルにエクスポートする方法を学び、さまざまな状況に最適なエクスポート方法を決定できるようにします。

Power Automate のオンプレミス データ ゲートウェイ

Power Automate のオンプレミス データ ゲートウェイ

ユーザーがコンピューターから離れているときに、オンプレミス データ ゲートウェイを使用して Power Automate がデスクトップ アプリケーションにアクセスできるようにする方法を説明します。

DAX 数式での LASTNONBLANK の使用

DAX 数式での LASTNONBLANK の使用

DAX 数式で LASTNONBLANK 関数を使用して、データ分析の深い洞察を得る方法を学びます。

CROSSJOIN 関数の使用方法 – LuckyTemplates および DAX チュートリアル

CROSSJOIN 関数の使用方法 – LuckyTemplates および DAX チュートリアル

LuckyTemplates で予算分析とレポートを実行しながら、CROSSJOIN 関数を使用して 2 つのデータ テーブルをバインドする方法を学びます。

TREATAS 関数を使用して LuckyTemplates で仮想リレーションシップを作成する

TREATAS 関数を使用して LuckyTemplates で仮想リレーションシップを作成する

このチュートリアルでは、LuckyTemplates TREATAS を使用して数式内に仮想リレーションシップを作成する方法を説明します。