Вы могли бы сделать это следующим образом, который имеет преимущество сохранения дубликатов в столбце mother
, когда они существуют.
mother_dt$age <- lapply(
mother_dt$children,
function(x,y) y[x],
y = setNames(child_dt$age, child_dt$child))
mother_dt
# mother children age
# 1: Penny Violet,Prudence 10, 8
# 2: Anya Erika 9
# 3: Sam Jake,Wolf,Red 6,5,2
Я хорошо перевожу в tidyverse
синтаксис:
library(tidyverse)
mutate(mother_dt, age = map(children,~.y[.], deframe(child_dt)))
# mother children age
# 1 Penny Violet, Prudence 10, 8
# 2 Anya Erika 9
# 3 Sam Jake, Wolf, Red 6, 5, 2
На самом деле Вы не должны получать все. Запишите негруппы фиксации (представленный с "?:"
) для вещей Вы не хотите снова использовать, это должно дать Вам некоторую передышку снова. Сравните:
Yours: Mine: ------------------------- --------------------------- ^([^/]+)/b $1 ^([^/]+)/b $1 ([0-9]+) $2 ([0-9]+) $2 (/a([0-9]+))? $4 (?:/a([0-9]+))? $3 (/v([0-9]+))? $6 (?:/v([0-9]+))? $4 (,([0-9]+))? $8 (?:,([0-9]+))? $5 (/(ajax|share))? $10! (?:/(ajax|share))? $6 (,complete)?$ $11! (,complete)?$ $7
Но с одним только mod_rewrite, Вы не можете повыситься, чем 9 обратных ссылок. При необходимости в больше используйте альтернативу - например, получение, только самые важные части в переписывают и делают некоторую обработку строки с остальной частью URL в приложении.
Один, хотя довольно немой, идея состояла бы в том, чтобы сделать переписывание на двух шагах, то есть, цепочка два RewriteRule
s с первым правилом, переписывая его в некоторый промежуточный формат.
Одно решение могло бы состоять в том, чтобы использовать тот же regex без получений, и передать запрос index.php
Затем используйте index.php для взрыва Запроса URI наклонными чертами вправо, и можно работать оттуда с данными.