Преобразование индекса чисел во время в R в большом наборе данных - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть таблица данных с 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>)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...