A: データ フレーム内のグループごとにテキストを折りたたむ方法
次のメソッドを使用して、R のデータ フレーム内のテキストをグループごとに折りたたむことができます。
方法 1: Base R を使用してグループごとにテキストを削減する
aggregate(text_var ~ group_var, data=df, FUN=paste, collapse='')
方法 2: dplyr を使用してグループごとにテキストを削減する
library (dplyr)
df %>%
group_by(group_var) %>%
summarize(text=paste(text_var, collapse=''))
方法 3: data.table を使用してグループごとにテキストを削減する
library (data.table) dt <- as. data . table (df) dt[, list(text_var=paste(text_var, collapse='')), by=group_var]
このチュートリアルでは、次のデータ フレームを使用して各メソッドを実際に使用する方法を説明します。
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
position=c('Guard', 'Guard', 'Forward',
'Guard', 'Forward', 'Center'))
#view data frame
df
team position
1A Guard
2 A Guard
3 A Forward
4 B Guard
5B Forward
6B Center
例 1: Base R を使用してグループごとにテキストを削減する
次のコードは、R データベースのAggregate()関数を使用して、チーム列ごとにグループ化されたポジション列のテキストを削減する方法を示しています。
#collapse position values by team
aggregate(position ~ team, data=df, FUN=paste, collapse='')
team position
1A GuardGuardForward
2 B GuardForwardCenter
ポジション列の各テキスト値が 1 つの値に折りたたまれ、チーム列の値ごとにグループ化されていることに注意してください。
例 2: dplyr を使用してグループごとにテキストを削減する
次のコードは、dplyr パッケージのsummarise()関数を使用して、チーム列ごとにグループ化されたポジション列のテキストを折りたたむ方法を示しています。
library (dplyr) #collapse position values by team df %>% group_by(group_var) %>% summarize(text=paste(text_var, collapse='')) # A tibble: 2 x 2 team text 1A GuardGuardForward 2 B GuardForwardCenter
ポジション列の各テキスト値が 1 つの値に折りたたまれ、チーム列の値ごとにグループ化されていることに注意してください。
例 3: data.table を使用してグループごとにテキストを削減する
次のコードは、data.table パッケージの関数を使用して、 Position列のテキストをTeam列ごとにグループ化して折りたたむ方法を示しています。
library (data.table) #convert data frame to data table dt <- as. data . table (df) #collapse position values by team dt[, list(text_var=paste(text_var, collapse='')), by=group_var] team position 1: A GuardGuardForward 2: B GuardForwardCenter
ポジション列の各テキスト値は 1 つの値に折りたたまれ、チーム列の値ごとにグループ化されています。
追加リソース
次のチュートリアルでは、R で他の一般的なタスクを実行する方法について説明します。