00:05:33.91
5 分 33 秒と 91/100 秒を意味するこのような文字列があります。
合計秒数を取得するにはどうすればよいですか? 例では5*60+33+91/100 = 333.91
秒です。
これは、時間が 24 時間を超えないことを前提として機能します。あなたが持っているように文字を含むベクトルfoo
で:
foo <- c("00:05:33.91","00:05:55","00:09:01.11")
次のように合計時間を取得できます。
as.numeric(as.difftime(foo,format="%H:%M:%OS",units="secs"))
文字列を数字を含む部分文字列に分割する必要があります。正規表現を使用して時間単位ごとにグループを抽出するかsplit(".")
、文字列のメソッドを使用できます。これにより、文字列の配列が得られます。最初は で"00:05:33"
、2 番目は"91"
です。
その後、もう一度 を作成できますsplit(":")
。これにより、最初の要素が"00"
、2 番目"05"
と 3 番目がである文字列の配列が生成されます"33"
。次にString.parseInt
、各数値に対して使用する必要があります。数値がある場合は、その数値に対して演算を実行できます。
よくわかりませんが、Yoda Time
ライブラリがこれをより速く、より良く達成するのに役立つかもしれません。たとえば、ヨーダでは、指定された文字列を直接解析して日付を指定できます。getSeconds()
おそらくこれでうまくいくかもしれませんが、よくわかりません。とても簡単な作業なので、まずは自分で考えてみて、どうしたらいいかわからないときは助けを求めるべきだと思います。