質問
いい方法はありませんかへの対応時間など05:30(5分30秒)R?
まだインターネットには想像もつかなに変換する整数値だけで秒?
この変換に、できるかを見つのデータ型です。
を使用していR動物園があります。
おみやげをたくさん!
秒の最良の方法への対応です。私は適応御礼の言葉の以下のコードを自分の目的で、"わらびもち"をここでの結果です。
# time - time in the format of dd hh:mm:ss
# (That's the format used in cvs export from Alcatel CCS reports)
#
time.to.seconds <- function(time) {
t <- strsplit(as.character(time), " |:")[[1]]
seconds <- NaN
if (length(t) == 1 )
seconds <- as.numeric(t[1])
else if (length(t) == 2)
seconds <- as.numeric(t[1]) * 60 + as.numeric(t[2])
else if (length(t) == 3)
seconds <- (as.numeric(t[1]) * 60 * 60
+ as.numeric(t[2]) * 60 + as.numeric(t[3]))
else if (length(t) == 4)
seconds <- (as.numeric(t[1]) * 24 * 60 * 60 +
as.numeric(t[2]) * 60 * 60 + as.numeric(t[3]) * 60 +
as.numeric(t[4]))
return(seconds)
}
解決
としてダークが指摘し、「difftime」と呼ばれるオブジェクトがあり、それは追加できません/差し引きます。
> as.difftime(5, units="mins")
Time difference of 5 mins
> d <- seq(from=as.POSIXct("2003-01-01"), to=as.POSIXct("2003-01-04"), by="days")
> d
[1] "2003-01-01 GMT" "2003-01-02 GMT" "2003-01-03 GMT" "2003-01-04 GMT"
> d + as.difftime(5, units="mins")
[1] "2003-01-01 00:00:05 GMT" "2003-01-02 00:00:05 GMT"
[3] "2003-01-03 00:00:05 GMT" "2003-01-04 00:00:05 GMT"
Warning message:
Incompatible methods ("+.POSIXt", "Ops.difftime") for "+"
あなたは今、これを行うことができますようだ。
> as.difftime(5, units='mins')
Time difference of 5 mins
> d <- seq(from=as.POSIXct("2003-01-01"), to=as.POSIXct("2003-01-04"), by="days")
> d
[1] "2003-01-01 GMT" "2003-01-02 GMT" "2003-01-03 GMT" "2003-01-04 GMT"
> d + as.difftime(5, unit='mins')
[1] "2003-01-01 00:05:00 GMT" "2003-01-02 00:05:00 GMT"
[3] "2003-01-03 00:05:00 GMT" "2003-01-04 00:05:00 GMT"
> d + as.difftime(5, unit='secs')
[1] "2003-01-01 00:00:05 GMT" "2003-01-02 00:00:05 GMT"
[3] "2003-01-03 00:00:05 GMT" "2003-01-04 00:00:05 GMT"
>
これは最近リリースされたR 2.15.0
であります他のヒント
ありがありません"時間"の種類、利用することができますオフセット時間:
R> now <- Sys.time()
R> now
[1] "2009-09-07 08:40:32 CDT"
R> class(now)
[1] "POSIXt" "POSIXct"
R> later <- now + 5*60
R> later
[1] "2009-09-07 08:45:32 CDT"
R> class(later)
[1] "POSIXt" "POSIXct"
R> tdelta <- difftime(later, now)
R> tdelta
Time difference of 5 mins
R> class(tdelta)
[1] "difftime"
R>
をご利用の場合 動物園 パッケージを使用している標準 POSIXt
種類ご回指す"ことである。両動物園の最新情報をメールにてお届けしま-おすすめ xts パッケージで使用 POSIXt
, 特に、コンパクト POSIXct
の種類、数の
は、xtsパッケージで無料の体験が多く割り出し機能、Jeffいており、最近になって、解析の間隔に応じてiso8601形式-2004(e)仕様では、これらの参考に Iso8601形式 や FAQのために広く使用されstandarsた日付/時刻フォーマット.このxts版が必要になる場合がありスイッチの xts開発スナップショットr-鍛造
[編集: もに関する質問で"変換':これはやばい物
クラスPOSIXt/POSIXctとして as.numeric()
に変換しPOSIXctす(小数)からの秒数になりました。Rさんは、POSIX標準を用いてダブルここでは、いたしますので、あらミリ秒の精度
R> options("digits.secs"=6) ## needed so that fractional seconds are printed
R> now <- Sys.time(); difftime(Sys.time(), now)
Time difference of 0.000149 secs
や
R> print(as.numeric(now), digits=15) ## print with digits for sub-second time
[1] 1252374404.22975
R>