下面是一个可重现的示例,我想添加时间+持续时间并以时间格式返回一个对象,例如9:00 + 35,我需要输出9:35,依此类推。那么在sqldf中执行此操作的最佳方法是什么。我知道如何使用r进行操作,但是需要sqldf代码吗?任何帮助将不胜感激。
df <- data.frame(
author <- c('Tom','Jerry', 'Nick'),
time <- c('9:00','9:50','10:30'),
duration_min <- c(35,30,20)
)
使用末尾注释中可重复定义的df
,假设您要对sqldf
使用默认的SQLite后端,请使用substr
确保小时数的格式为HH,而不仅仅是H,然后使用SQLite time function:
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
请注意,在将df
的列定义为author
等时,必须使用等号而不是arguments至data.frame
。
df <- data.frame(
author = c('Tom','Jerry', 'Nick'),
time = c('9:00','9:50','10:30'),
duration_min = c(35,30,20))