agrep настаивает на совпадении миллисекунды (а не только секунды) - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь получить agrep для совпадения seconds с second и , а не millisecond, но, кажется, не существует никакого значения costs для этого.

Меня особенно смущает, что нет никакой стоимости стоимости для deletions / insertions, которая, кажется, делает свое дело - на мой взгляд, second - это одно удаление из seconds, тогда какmillisecond - это одно удаление и 5 вставок.

(предупреждение о том, что lapply может занять некоторое время ... вы получите тот же результат для length.out = 10 и 0:10 намного быстрее)

rng = c(seq(0, 1, length.out = 20), 0:100)
x = expand.grid(insertions = rng, substitutions = rng, deletions = rng)

units = c("millisecond", "second", "minute", "hour", "day",
          "week", "month", "quarter", "year")
x$match = lapply(seq_len(nrow(x)), function(ii)
  agrep('second', units, value = TRUE, costs = x[ii, ]))

x$match_which = sapply(x$match, paste, collapse = '|')

sort(table(x$match_which))
#             millisecond|second|minute|hour|week|month|year 
#                                                         57 
#     millisecond|second|minute|hour|week|month|quarter|year 
#                                                      13276 
#                                   millisecond|second|month 
#                                                      23316 
#                    millisecond|second|minute|month|quarter 
#                                                      37842 
#                          millisecond|second|minute|quarter 
#                                                     251480 
# millisecond|second|minute|hour|day|week|month|quarter|year 
#                                                     409865 
#                                         millisecond|second 
#                                                    1035725 

Что мне здесь не хватает?Нет ли способа выполнить мою задачу (сопоставить seconds с second, а не millisecond) с agrep?

...