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

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *