как добавить тип данных времени в sqldf? - PullRequest
0 голосов
/ 02 марта 2020

ниже - воспроизводимый пример, я хотел бы добавить время + длительность и вернуть объект в виде формата времени, например 9:00 + 35, мне нужно вывести 9:35 и так далее. так что это лучший способ сделать это в sqldf. Я знаю, как сделать это с помощью г, но нужно в коде sqldf? любая помощь будет высоко ценится.

df <- data.frame(
            author = c('Tom','Jerry', 'Nick'),
            time = c('9:00','9:50','10:30'),
            duration_min = c(35,30,20)
)

1 Ответ

0 голосов
/ 02 марта 2020

Использование df, определенно воспроизводимого в примечании в конце, при условии, что вы хотите использовать бэкэнд SQLite по умолчанию для sqldf, а затем использовать substr, чтобы убедиться, что часы имеют форму HH, а не только H, а затем используйте функцию времени SQLite :

sqldf("select 
    *, 
    time(substr('0' || time, -5), duration_min || ' minutes') as time2 
  from df")

, дающую:

  author  time duration_min    time2
1    Tom  9:00           35 09:35:00
2  Jerry  9:50           30 10:20:00
3   Nick 10:30           20 10:50:00

Примечание

Обратите внимание, что мы должны использовать знаки равенства вместо <- при определении столбцов <code>df как author et c. аргументы до data.frame.

df <- data.frame(
            author = c('Tom','Jerry', 'Nick'),
            time = c('9:00','9:50','10:30'),
            duration_min = c(35,30,20))
...