Обрезать спецсимвол из столбца в R-кадре - PullRequest
0 голосов
/ 01 мая 2018

У меня есть кадр данных в R, как показано ниже -

some_string <- c("::hello:world:", ":hello:world:again:::",":::::::hello::::")
df = as.data.frame(some_string)
df

            some_string
1        ::hello:world:
2 :hello:world::::again:::
3      :::::::hello::::

Я бы хотел, чтобы : специальный символ из этого столбца между словами только один раз, если это встречается несколько раз. Фрейм выходных данных должен быть -

           some_string
1          hello:world
2      hello:world:again
3           hello

По сути, мне нужно, чтобы строка была разделена :, но не спереди и сзади строки.

1 Ответ

0 голосов
/ 01 мая 2018

Вы можете использовать

gsub("^:+|:+$", "", some_string)
# [1] "hello:world"          "hello:world::::again" "hello"  

Здесь мы используем ^ и $ для привязки совпадений к началу или концу строки и используем | для сопоставления совпадений в начале "или" конце.

Чтобы свернуть несколько двоеточий в одну, вы также можете запустить

gsub(":+", ":", gsub("^:+|:+$", "", some_string))
# [1] "hello:world"       "hello:world:again" "hello"

, просто заменив все экземпляры оставшихся повторяющихся двоеточий только одним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...