У меня есть много нечистых данных в виде:R - замена строк с использованием GSUB()
abc
abc/def
abc/de
abc/d
abc/def/i j k
abc/def/i
abc/def/i j
Это только часть данных, я хотел бы изменить. Это часть гораздо большего набора данных.
Я хочу изменить все элементы на abc/def/i j k
. Я использовал функцию gsub()
следующим образом:
gsub('abc[a-z/]', 'abc/def/i j k', str)
выход:
abc/def/i j k
abc/def/i j k/def
abc/def/i j k/de
abc/def/i j k/d
Проблема в том, что он заменяет любое вхождение шаблона.
Единственное решение, в котором я получил достаточно приличные результаты, где я жесткий код все возможные варианты, как это:
gsub('abc$|abc/d$|abc/de$|abc/def/i$', 'abc/def/i j k', str)
Однако, это не будет работать, если есть изменение каких-либо новых данных. Так что мне было интересно, удалось ли получить результат без жесткого кодирования параметров.
So символы, которые 'abc' /' def' заполнители? В противном случае '^ abc [a-z /] * $' будет работать с 'sub'. –
Если я правильно понимаю, вы хотите, чтобы все элементы стали «abc/def», так почему бы вам просто не использовать 'rep (« abc/def », length (str))'? –
Попробуйте 'sub (" (abc) [/ az] * "," \\ 1/def ", x)' или 'sub ("^(abc) [/ az] * $ "," \\ 1/def ", x)' –