2017-02-05 2 views
0

У меня есть строка. Я хочу (a) сохранить «/» в дроби, (b) вставить пробелы вокруг «/», которые находятся между словами, и (c) удалить все остальные «/».Как удалить строки с исключениями в R?

s = "/// ///1/2 111/222 a/b abc/abc a/b/// ///" 

Результат должен быть следующим.

s = "1/2 111/222 a b abc abc a b" 

Я пробовал несколько вещей. Я не могу все исправить.

ответ

2

Я не эксперт по регулярному выражению, но это, похоже, работает на вашем примере.

s = "/// ///1/2 111/222 a/b abc/abc a/b/// ///" 

i <- gsub("/{2,}|/\\s", "", s) 
i <- trimws(gsub("([[:alpha:]]{1,})(/)([[:alpha:]]{1,})", "\\1 \\3", i)) 
i <- gsub("\\s{2,}", " ", i) 

identical(i, "1/2 111/222 a b abc abc a b") 

[1] TRUE