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