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

Следующий код показывает, как уменьшить текст столбца позиции , сгруппированного по столбцу команды , с помощью функции Aggregate() базы данных R:

 #collapse position values by team 
aggregate(position ~ team, data=df, FUN=paste, collapse='')

  team position
1A GuardGuardForward
2 B GuardForwardCenter

Обратите внимание, что каждое из текстовых значений в столбце позиции свернуто в одно значение, сгруппированное по значениям в столбце команды .

Пример 2. Уменьшите текст по группам с помощью dplyr

Следующий код показывает, как свернуть текст в столбце позиции , сгруппированный по столбцу команды , с помощью функции summarise() из пакета 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

Обратите внимание, что каждое из текстовых значений в столбце позиции свернуто в одно значение, сгруппированное по значениям в столбце команды .

Пример 3. Уменьшите текст по группам с помощью data.table

Следующий код показывает, как свернуть текст в столбце «Позиция» , сгруппированный по столбцу «Команда» , с помощью функций пакета 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

Каждое из текстовых значений в столбце позиции свернуто в одно значение, сгруппированное по значениям в столбце команды .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:

Как выбрать столбцы, содержащие определенную строку в R
Как удалить символы из строки в R
Как найти местоположение символа в строке в R

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *