R で split() 関数を使用してデータを分割する方法
R のSplit()関数を使用すると、因子レベルに基づいてデータをグループに分割できます。
この関数は次の基本構文を使用します。
除算(x, f, …)
金:
- x : グループに分割するベクトルまたはデータ ブロックの名前
- f : グループ分けを定義する係数
次の例は、この関数を使用してベクトルとデータ フレームをグループに分割する方法を示しています。
例 1: ベクトルをグループに分割するには、split() を使用します。
次のコードは、因子レベルのベクトルに基づいてデータ値のベクトルをグループに分割する方法を示しています。
#create vector of data values data <- c(1, 2, 3, 4, 5, 6) #create vector of groupings groups <- c('A', 'B', 'B', 'B', 'C', 'C') #split vector of data values into groups split(x = data, f = groups) $A [1] 1 $B [1] 2 3 4 $C [1] 5 6
結果は 3 つのグループになります。
インデックス作成を使用して特定のグループを取得することもできることに注意してください。
#split vector of data values into groups and only display second group
split(x = data, f = groups)[2]
$B
[1] 2 3 4
例 2: Split() を使用してデータ フレームをグループに分割する
R に次のデータ フレームがあるとします。
#create data frame df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'), position=c('G', 'G', 'F', 'G', 'F', 'F'), points=c(33, 28, 31, 39, 34, 44), assists=c(30, 28, 24, 24, 28, 19)) #view data frame df team position points assists 1 GA 33 30 2 AG 28 28 3 AF 31 24 4 BG 39 24 5 BF 34 28 6 BF 44 19
次のコードを使用すると、「チーム」変数に基づいてデータ フレームをグループに分割できます。
#split data frame into groups based on 'team'
split(df, f = df$team)
$A
team position points assists
1 GA 33 30
2 AG 28 28
3 AF 31 24
$B
team position points assists
4 BG 39 24
5 BF 34 28
6 BF 44 19
結果は 2 つのグループになります。最初の行には「team」が A に等しい行のみが含まれ、2 番目の行には「team」が B に等しい行のみが含まれています。
複数の因子変数を使用してデータをグループに分割することもできることに注意してください。たとえば、次のコードは、「チーム」変数と「ポジション」変数に基づいてデータをグループに分割する方法を示しています。
#split data frame into groups based on 'team' and 'position' variables
split(df, f = list(df$team, df$position))
$AF
team position points assists
3 AF 31 24
$BF
team position points assists
5 BF 34 28
6 BF 44 19
$AG
team position points assists
1 GA 33 30
2 AG 28 28
$BG
team position points assists
4 BG 39 24
結果は4つのグループになります。
追加リソース
次のチュートリアルでは、R の他の一般的な関数の使用方法について説明します。
R で summary() 関数を使用する方法
Rでreplicate()関数を使用する方法
R で match() 関数を使用する方法