У меня есть фрейм данных, и мне нужно найти в последнем столбце имена столбцов других столбцов и заменить найденный текст значением из соответствующего столбца. Используя приведенные ниже примеры данных, первая строка будет работать следующим образом:
- текст «дата» следует заменить на «2019-05-12» в столбце
Query
- текст «заменить» должен быть заменен на «1» в
Query
столбце - текст «нижний» должен быть заменен на «150» в
Query
столбце - текст «верхний» следует заменить на «250» в столбце
Query
Я пробовал функцию str_replace
из stringr
, но она не сработала, возможно, я неправильно использую функцию. Любая помощь приветствуется, спасибо.
data=structure(list(date = c("2019-05-12", "2019-07-10", "2019-04-10"
), substitute = c(1, 2, 3), lower = c(150, 100, 300), upper = c(250,
200, 400), query = c("Select \r\ncolumn1,\r\ncolumn2,\r\ncase \r\nwhen \"date\" between a and b then 1\r\nwhen \"date\" between c and d then 2\r\nend as date_group,\r\ncase when \"date\" < e then \r\n'substitute' as ID\r\nFROM Table1\r\nWHERE (date_2 between a and d )\r\n AND (tag between 'lower' and 'upper')\r\nGROUP BY",
"Select \r\ncolumn1,\r\ncolumn2,\r\ncase \r\nwhen \"date\" between a and b then 1\r\nwhen \"date\" between c and d then 2\r\nend as date_group,\r\ncase when \"date\" < e then \r\n'substitute' as ID\r\nFROM Table1\r\nWHERE (date_2 between a and d )\r\n AND (tag between 'lower' and 'upper')\r\nGROUP BY",
"Select \r\ncolumn1,\r\ncolumn2,\r\ncase \r\nwhen \"date\" between a and b then 1\r\nwhen \"date\" between c and d then 2\r\nend as date_group,\r\ncase when \"date\" < e then \r\n'substitute' as ID\r\nFROM Table1\r\nWHERE (date_2 between a and d )\r\n AND (tag between 'lower' and 'upper')\r\nGROUP BY"
)), row.names = c(NA, -3L), class = c("tbl_df", "tbl", "data.frame"
))