R: como recolher texto por grupo em um quadro de dados
Você pode usar os seguintes métodos para recolher texto por grupo em um quadro de dados em R:
Método 1: Reduzir texto por grupo usando Base R
aggregate(text_var ~ group_var, data=df, FUN=paste, collapse='')
Método 2: reduzir texto por grupo usando dplyr
library (dplyr)
df %>%
group_by(group_var) %>%
summarize(text=paste(text_var, collapse=''))
Método 3: reduzir texto por grupo usando data.table
library (data.table) dt <- as. data . table (df) dt[, list(text_var=paste(text_var, collapse='')), by=group_var]
Este tutorial explica como usar cada método na prática com o seguinte quadro de dados:
#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
Exemplo 1: Reduzir texto por grupo usando Base R
O código a seguir mostra como reduzir o texto da coluna de posição , agrupada por coluna de equipe usando a função Aggregate() do banco de dados R:
#collapse position values by team
aggregate(position ~ team, data=df, FUN=paste, collapse='')
team position
1A GuardGuardForward
2 B GuardForwardCenter
Observe que cada um dos valores de texto na coluna de posição foi recolhido em um único valor, agrupado pelos valores na coluna da equipe .
Exemplo 2: Reduzir texto por grupo usando dplyr
O código a seguir mostra como recolher o texto na coluna de posição , agrupado por coluna de equipe usando a função summarise() do pacote dplyr:
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
Observe que cada um dos valores de texto na coluna de posição foi recolhido em um único valor, agrupado pelos valores na coluna da equipe .
Exemplo 3: Reduza o texto por grupo usando data.table
O código a seguir mostra como recolher o texto na coluna Posição , agrupado pela coluna Equipe usando funções no pacote data.table:
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
Cada um dos valores de texto na coluna de posição foi recolhido em um único valor, agrupado pelos valores na coluna da equipe .
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:
Como selecionar colunas contendo uma string específica em R
Como remover caracteres de uma string em R
Como encontrar a localização dos caracteres em uma string em R