У меня есть таблица данных с 200 миллионами строк. Есть четыре столбца:
- Удостоверение личности
- дата (как символ)
- полчаса (как индекс 1:48)
- Данные
Я пытаюсь создать один столбец, который объединяет время и дату.
До сих пор я не смог преобразовать получасовой индекс во временную переменную. Я запустил следующий код:
thirtymins <- hms("00:30"00") #from lubridate
dataset$halfhour <- dataset$halfhour * thirtymins
Когда я запускаю этот код, он выходит из строя компьютера.
Когда я бегу только для первого миллиона строк (0,5%), это занимает 1,75 минуты, поэтому для всего набора данных потребуется около 6 часов.
Есть ли лучший способ?
РЕДАКТИРОВАТЬ: (извините, не знаю, как это сделать в комментарии)
Вывод из dput(head(dataset))
.
structure(list(ID = c("1", "1", "1",
"1", "1", "1"), date = c("2016-07-01",
"2016-07-01", "2016-07-01", "2016-07-01", "2016-07-01", "2016-07-01"
), halfhour = 1:6, data = c(6.8, 4.82, 4.4, 4.36,
4.4, 4.02)), class = c("data.table", "data.frame"), row.names = c(NA,
-6L), .internal.selfref = <pointer: 0x00000000025a1ef0>)