Rで同じ列値を持つ行を結合する方法


次の基本構文を使用して、R のデータ フレーム内の同じ列値を持つ行を結合できます。

 library (dplyr)

df %>%
  group_by(group_var1, group_var2) %>%
  summarise(across(c(values_var1, values_var2), sum))

次の例は、この構文を実際に使用する方法を示しています。

例: R で同じ列値を持つ行を結合する

会社のさまざまな従業員による売上と返品に関する情報を含む次のデータ フレームがあるとします。

 #create data frame
df <- data. frame (id=c(101, 101, 102, 103, 103, 103),
                 employee=c('Dan', 'Dan', 'Rick', 'Ken', 'Ken', 'Ken'),
                 sales=c(4, 1, 3, 2, 5, 3),
                 returns=c(1, 2, 2, 1, 3, 2))

#view data frame
df

   id employee sales returns
1 101 Dan 4 1
2 101 Dan 1 2
3 102 Rick 3 2
4 103 Ken 2 1
5 103 Ken 5 3
6 103 Ken 3 2

次の構文を使用して、 id 列Employee列に同じ値を持つ行を結合し、残りの列を集計します。

 library (dplyr)

#combine rows with same value for id and employee and aggregate remaining columns
df %>%
  group_by(id, employee) %>%
  summarise(across(c(sales, returns), sum))

# A tibble: 3 x 4
#Groups: id[3]
     id employee sales returns
          
1 101 Dan 5 3
2 102 Rick 3 2
3 103 Ken 10 6

結果は、 ID列とEmployee列に同じ値を持つ元のデータ フレーム内のすべての行を結合し、 Sales列とReturns列の値の合計を計算するデータ フレームになります。

: ここでは、 sum関数を使用して売上と返品の列を集計することにしましたが、必要に応じて、平均などの別の指標で集計することもできます。

関連: dplyr で across() 関数を使用する方法

追加リソース

次のチュートリアルでは、R で他の一般的なタスクを実行する方法について説明します。

Rでリストを結合する方法
R で 2 つのベクトルを結合する方法
R で異なる列を持つ 2 つのデータ フレームを結合する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です