У меня есть следующий фрейм данных:
species size_description
1 "some text Small some text"
2 "some text small-med some text"
3 "some text Med. some text"
4 "some text medium some text"
5 "some text med-large some text"
6 "some text large some text"
Я хотел бы написать регулярное выражение, которое фиксирует размер в поле описания размера, поэтому оно будет выглядеть так:
species size_description newSize
1 "some text Small some text" "Small"
2 "some text small-med some text" "small-med"
3 "some text Med. some text" "Med."
4 "some text medium some text" "medium"
5 "some text med-large some text" "med-large"
6 "some text large some text" "large"
Я пытался сделать это следующим образом:
size_regex = paste(
"[Ss]{1}mall",
"[Mm]{1}ed\\.*i*u*m*",
"[Mm]{1}ed\\.*i*u*m*-*\\s*[Ll]{1}arge", #doesnt work
"[Ss]{1}mall-*\\s*[Mm]{1}ed\\.*i*u*m*", #doesnt work
"[Ll]{1}arge",
sep = "|"
)
df$newSize = str_extract(df$size_description, age_regex)
НО, он не может различать те, у которых есть дефис. Например, для вида 2 он записывается как «маленький», а не как «маленький-средний».
Как я могу написать регулярное выражение, которое будет делать это в R? Я предпочитаю пакет stringr, но подойдет любой.
Обратите внимание, что причина, по которой я оставляю вариант для полных слов в моем регулярном выражении, заключается в том, что в некоторых описаниях используется полное слово. Например, некоторые могут быть «маленькими-средними», а другие просто «маленькими-средними».
size
элементы вы рассматриваете? - person rock321987   schedule 05.06.2016