2017-02-28 11 views
-3

の10進数値に変換します。時間(hh:mm:ss)をR

これは愚かな質問かもしれませんが、本当に答えが分かりました。 私は "HH:MM:SS"という形式で "start time"と "end time"という名前の2つの列を持っていますが、これを10進数に変換して一緒に結合する必要があります。

具体的には、ここでの例です: コラム「開始時間」:午前9時00分00秒 コラム「終了時間」:10時00分00秒 最終結果:9-10

私は方法を知っていますそれをmysqlでやってみましょう。しかし、どのようにしてRでそれを行うのですか?どうもありがとう。

答えて

0

ここでは、小数時間をしたいと仮定すると、10進数に時間を変換する機能です:

あなたが探しているもののために働く可能性があり
# 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/12)+(s/12/60) 
    return(xdec) 
} 

hhmmss2dec(asdf) 
14.911111 12.000000 6.151389 3.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" 
関連する問題