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を使用して特定の文字列を含む行をフィルタリングする方法