Я пытаюсь получить 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
?