Итак, у меня есть фрейм данных комментариев веб-форума. В каждой строке есть ячейка, содержащая идентификатор, который является частью ссылки на родительский комментарий этого комментария. Строки содержат полную постоянную ссылку на комментарий, переменной частью которого является идентификатор.
Я хотел бы добавить столбец, который показывает имя пользователя, прикрепленное к этому родительскому комментарию. Я предполагаю, что мне нужно будет использовать некоторую функцию регулярного выражения, которую я нахожу загадочной на данный момент.
С точки зрения рабочего процесса мне нужно найти строку, URL-адрес которой содержит идентификатор родительского комментария, и получить имя пользователя из этой строки. Вот пример игрушки:
toy <- rbind(c("yes?", "john", "www.website.com/4908", "3214", NA), c("don't think so", "mary", "www.website.com/3958", "4908", NA))
toy <- as.data.frame(toy)
colnames(toy) <- c("comment", "user", "URL", "parent", "parent_user")
comment user URL parent parent_user
1 yes? john www.website.com/4908 3214 <NA>
2 don't think so mary www.website.com/3958 4908 <NA>
который должен стать:
comment user URL parent parent_user
1 yes? john www.website.com/4908 3214 <NA>
2 don't think so mary www.website.com/3958 4908 john
Некоторые значения в этом столбце будут NA, так как это комментарии верхнего уровня. Так что-то вроде,
dataframe$parent_user <- dataframe['the row where parent
ID i is found in the URL column', 'the user name column in that row']
Спасибо!!
setDT(toy)[, parent_user := user[match(parent, stri_extract_last_regex(str = URL, pattern = "\\d+"))]]
. 04.06.2016www.and1.com.au
например. 05.06.2016and1
, опубликованный вами метод также должен дать сбой, то естьbasename("www.and1.com.au") #[1] "www.and1.com.au"
05.06.2016