Проблема: У меня есть следующий объект метаданных data.table. Исходя из этого, я хочу преобразовать столбцы extension
и start_date
фактической таблицы data.table dt
в столбцы даты. У меня есть решение, в котором я перебираю строки meta_dt
. Поскольку я хочу избежать циклов for, можете ли вы придумать умное data.table
соединение?
library(data.table)
meta_dt <- data.table(
col_n = c("id", "description", "extension", "start_date"),
type = c("character", "character", "date", "date"),
form = c(NA, NA, "%Y-%m-%d", "%Y-%m-%d")
)
dt <- data.table(
id = c(1, 2, 3, 4),
description = c("ab", "ac", "ad", "ae"),
extension = c("2020-01-01", "2020-12-31", "2020-05-01", "2020-01-04"),
start_date = c("2020-09-01", "2020-11-31", "2020-08-19", "2020-03-14")
)
Ожидаемый результат: Структура ожидаемого результата должна выглядеть следующим образом (т.е. только столбцы, указанные в метаданных как дата, были преобразованы, другие столбцы не затронуты):
Classes ‘data.table’ and 'data.frame': 4 obs. of 4 variables:
$ id : num 1 2 3 4
$ description: chr "ab" "ac" "ad" "ae"
$ extension : Date, format: "2020-01-01" "2020-12-31" ...
$ start_date : Date, format: "2020-09-01" "2020-11-30" ...