Удаление всего после символа в столбце В R
мне нужно удалить все после знака вопроса в столбце.
у меня есть набор данных, например:
my.data
BABY MOM LANDING
mark dina www.example.com/?kdvhzkajvkadjf
tom becky www.example.com/?ghkadkho[qeu
brad tina www.example.com/?klsdfngal;j
Я хочу, чтобы мои новые данные:
new.data
BABY MOM LANDING
mark dina www.example.com/?
tom becky www.example.com/?
brad tina www.example.com/?
как мне сказать R, чтобы удалить все после ?
на my.data$LANDING
?
1 ответов
можно использовать sub
, чтобы удалить символы, которые после ?
. Мы используем положительный lookbehind ((?<=\?).*
), чтобы соответствовать одному или нескольким символам (.
), что предшествует ?
и заменить ''
.
my.data$LANDING <- sub('(?<=\?).*$', '', my.data$LANDING, perl=TRUE)
my.data
# BABY MOM LANDING
#1 mark dina www.example.com/?
#2 tom becky www.example.com/?
#3 brad tina www.example.com/?
или другой вариант-использовать capture groups
а затем замените второй аргумент группой захвата (\1
).
my.data$LANDING <- sub('([^?]+\?).*', '\1', my.data$LANDING)
здесь мы сопоставляем все символы, которые не являются ?
([^?]+
), затем ?
(\?
) и используйте круглые скобки для захвата как группы (([^?]+\?)
), а остальных персонажей оставляем не в группе (.*
).
или, как @ Frank упомянул в комментариях, мы можем сопоставить ?
и остальные символы (.*
), и заменить его \?
в качестве второго аргумента.
my.data$LANDING <- sub("\?.*","\?",my.data$LANDING)