Рассмотрите этот фрейм данных
df <- data.frame(name = c("Dirk Nowitzki", "Dirk Nowitzki", "LeBron James", "Lebron James", "Kobe Bryant", "Kobe Bryant"),
team = c("Mavericks", "Mavs", "Cavs", "Cavaliers", "Lakers", "Lakers"))
name team
1 Dirk Nowitzki Mavericks
2 Dirk Nowitzki Mavs
3 LeBron James Cavs
4 Lebron James Cavaliers
5 Kobe Bryant Lakers
6 Kobe Bryant Lakers
Я хотел бы заменить сокращенные названия команд их более длинными аналогами и получить это
name team
1 Dirk Nowitzki Mavericks
2 Dirk Nowitzki Mavericks
3 LeBron James Cavaliers
4 Lebron James Cavaliers
5 Kobe Bryant Lakers
6 Kobe Bryant Lakers
Это достаточно просто использовать gsub
или str_replace
чтобы сделать это один за другим в игрушечном примере, но фактический набор данных содержит тысячи неполных строк.
Я могу сгруппировать по имени и определить, какое имя команды самое длинное, но затем я застреваю
df %>%
group_by(name) %>%
mutate(str_len = str_length(team))