Вот мои игрушечные данные
df <- tibble::tribble(
~names,
"apple alpha",
"grapes beta",
"orange gamma",
'graphite alpha',
"a bc",
"apple gamma")
Вот пример кода:
df_1 <- df %>%
mutate(first_word = word(names),
first_n_letters = str_sub(names, start = 1L, end = 4L) %>% str_trim(),
small_name = if_else(nchar(first_word) > nchar(first_n_letters), first_word, first_n_letters))
Я хочу продолжать увеличивать конечный аргумент str_sub в приведенном выше коде до момента, когда
n_distinct(df_1 %>% select(small_name)) == nrow(df_1)
Другими словами, nchar (small_name) должен быть достаточно большим, чтобы в кадре данных не было повторяющегося small_name.
Таким образом, в этом случае итератор в l oop должен остановиться на 7, поскольку он предоставит уникальные значения small_name в df_1.