R でデータ フレーム内の行をレプリケートする方法


dplyrパッケージの関数を使用して、R のデータ フレーム内の行をレプリケートするには、次の方法を使用できます。

方法 1: 各行を同じ回数複製する

 library (dplyr)

#replicate each row 3 times
df %>% slice(rep(1:n(), each = 3))

方法 2: 各行を異なる回数複製する

 library (dplyr)

#replicate the first row 3 times and the second row 5 times
df %>% slice(rep(1:n(), times = c(3, 5)))

次の例は、各メソッドを実際に使用する方法を示しています。

例 1: 各行を同じ回数複製する

R に 2 つの行を含む次のデータ フレームがあるとします。

 #create data frame
df <- data. frame (team=c('A', 'B'),
                 dots=c(10, 15),
                 rebounds=c(4, 8),
                 assists=c(2, 5))

#view data frame
df

  team points rebound assists
1 to 10 4 2
2 B 15 8 5

次の構文を使用して、データ フレームの各行を 3 回繰り返すことができます。

 library (dplyr)

#create new data frame that repeats each row in original data frame 3 times
new_df <- df %>% slice(rep(1:n(), each = 3))

#view new data frame
new_df

  team points rebound assists
1 to 10 4 2
2 to 10 4 2
3 to 10 4 2
4 B 15 8 5
5 B 15 8 5
6 B 15 8 5

元のデータ フレームの各ラインが 3 回繰り返されていることに注意してください。

例 2: 各行を異なる回数複製する

R に 2 つの行を含む次のデータ フレームがあるとします。

 #create data frame
df <- data. frame (team=c('A', 'B'),
                 dots=c(10, 15),
                 rebounds=c(4, 8),
                 assists=c(2, 5))

#view data frame
df

  team points rebound assists
1 to 10 4 2
2 B 15 8 5

次の構文を使用して、最初の行を 3 回、2 行目を 5 回繰り返すことができます。

 library (dplyr)

#create new data frame that repeats first row 3 times and second row 5 times
new_df <- df %>% slice(rep(1:n(), times = c(3, 5)))

#view new data frame
new_df

  team points rebound assists
1 to 10 4 2
2 to 10 4 2
3 to 10 4 2
4 B 15 8 5
5 B 15 8 5
6 B 15 8 5
7 B 15 8 5
8 B 15 8 5

元のデータ フレームの最初の行は 3 回、2 行目は 5 回繰り返されていることに注意してください。

関連: dplyr でのスライス() 関数の使用方法

追加リソース

次のチュートリアルでは、dplyr で他の一般的な操作を実行する方法を説明します。

dplyrを使用してインデックスによって列を選択する方法
dplyrを使用してグループごとに最初の行を選択する方法
dplyrを使って複数の条件でフィルタリングする方法
dplyrを使用して特定の文字列を含む行をフィルタリングする方法

コメントを追加する

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