Odp.: jak zwinąć tekst według grup w ramce danych


Aby zwinąć tekst według grup w ramce danych w R, możesz użyć następujących metod:

Metoda 1: Zmniejsz tekst według grup, używając Base R

 aggregate(text_var ~ group_var, data=df, FUN=paste, collapse='')

Metoda 2: Zmniejsz tekst według grup za pomocą dplyr

 library (dplyr)

df %>%
  group_by(group_var) %>%
  summarize(text=paste(text_var, collapse=''))

Metoda 3: Zmniejsz tekst według grup, używając data.table

 library (data.table)

dt <- as. data . table (df)

dt[, list(text_var=paste(text_var, collapse='')), by=group_var]

W tym samouczku wyjaśniono, jak w praktyce używać każdej metody z następującą ramką danych:

 #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

Przykład 1: Zmniejsz tekst według grupy, używając Base R

Poniższy kod pokazuje, jak zmniejszyć tekst kolumny pozycji , pogrupowany według kolumny zespołu , za pomocą funkcji Aggregate() bazy danych R:

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

  team position
1A GuardGuardForward
2 B GuardForwardCenter

Zwróć uwagę, że każda z wartości tekstowych w kolumnie pozycja została zwinięta w jedną wartość, pogrupowaną według wartości w kolumnie zespół .

Przykład 2: Zmniejsz tekst według grup za pomocą dplyr

Poniższy kod pokazuje, jak zwinąć tekst w kolumnie pozycji , pogrupowany według kolumny zespołu , za pomocą funkcji podsumowania() z pakietu 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

Zwróć uwagę, że każda z wartości tekstowych w kolumnie pozycja została zwinięta w jedną wartość, pogrupowaną według wartości w kolumnie zespół .

Przykład 3: Zmniejsz tekst według grupy za pomocą data.table

Poniższy kod pokazuje, jak zwinąć tekst w kolumnie Pozycja pogrupowany według kolumny Zespół przy użyciu funkcji z pakietu 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

Każda z wartości tekstowych w kolumnie pozycja została zwinięta w jedną wartość, pogrupowaną według wartości w kolumnie zespół .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:

Jak wybrać kolumny zawierające określony ciąg w R
Jak usunąć znaki z ciągu w R
Jak znaleźć lokalizację znaku w ciągu w R

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *