那里。
我知道这可能是一个愚蠢的问题,但我真的很感激答案。 我有两个列命名"开始时间"和#34;结束时间"格式为" HH:MM:SS",我需要做的是将它们转换为十进制值并将它们连接在一起。
更具体地说,这是一个例子: 栏"开始时间":09:00:00 栏"结束时间":10:00:00 最终结果:9-10
我知道如何在mysql中做到这一点,但任何解决方案如何在R中完成它?非常感谢。
答案 0 :(得分:0)
这是一个将时间转换为十进制的函数,假设您需要十进制小时:
# fake data
asdf <- c("12:34:56","12:00:00","06:01:49","1:30:00")
hhmmss2dec <- function(x) {
xlist <- strsplit(x,split=":")
h <- as.numeric(sapply(xlist,"[",1))
m <- as.numeric(sapply(xlist,"[",2))
s <- as.numeric(sapply(xlist,"[",3))
xdec <- h+(m/60)+(s/60/60)
return(xdec)
}
hhmmss2dec(asdf)
12.582222 12.000000 6.030278 1.500000
或者这可能适用于你正在寻找的东西......
starts <- c("10:00:00","12:34:56")
ends <- c("12:00:00","14:20:00")
hourthing <- function(start,end) {
startlist <- strsplit(start,split=":")
endlist <- strsplit(end,split=":")
hstart <- sapply(startlist,"[",1)
hend <- sapply(endlist,"[",1)
out <- paste(hstart,hend,sep="-")
return(out)
}
hourthing(starts,ends)
"10-12" "12-14"