2012-11-28 10 views
9

この日付形式はどのように解析できますか?私はこのコロンをドットに変えるべきでしょうか、誰かがもっと良い解決策を知っているのでしょうか?秒とミリ秒の間の日付形式のコロン。 Rでどのように解析するのですか?

> x <- "2012.01.15 09:00:02:002" 
> strptime(x, "%Y.%m.%d %H:%M:%S:%OS") 
[1] "2012-01-15 09:00:02" 
> strptime(x, "%Y.%m.%d %H:%M:%OS") 
[1] "2012-01-15 09:00:02" 
> x <- "2012.01.15 09:00:02.002" 
> strptime(x, "%Y.%m.%d %H:%M:%OS") 
[1] "2012-01-15 09:00:02.001" 
+0

どちらの答えが正しい+1です!個人的に私はgsubfnを好む:D –

+1

最後のコロンを過ぎた数が分数秒であることは実際に分かっていますか?フレームのようなものかもしれません。 – John

答えて

8

ここには微妙な違いがあります。 ?strptimeとしてノート: 'のstrptime' '%のOS' の

が入力秒秒の小数を含めます。そのビットを強調する

%OSは秒のちょうど小数一部ない---秒に小数点以下の秒を含むを表します秒の値が44.234、%OSまたは%OS3であれば、44.234を表し.234

したがって、解決策は実際には.をその最終:に置き換えることです。

ここであなたがそれを行うかもしれない一つの方法です:

x <- "2012.01.15 09:00:02:002" 
strptime(gsub(":", ".", x), "%Y.%m.%d %H.%M.%OS") 
+0

+1。私はOPがすでにそれをすべて知っていたと思う - あなたは彼が最後に試したことでその事実を使っていることに気付くだろうが、この質問に出会うかもしれない他の人には役に立つだろう。 – ruakh

+0

@ruakh - 良い点、あなたが正しいと思う。私は '?strptime'からの引用がポイントを余計に明瞭にするのが好きです。 –

+0

はい、私はコロンをドットに変換しました。迅速な返信のためのThx :) –

2

strptime(gsub(":", ".", x), "%Y.%m.%d %H.%M.%OS3") 

浮気しますか?

+0

'sub'は': 'の最初のインスタンスを各インスタンスではなく' .'で置き換えます。あなたは@ JoshO'Brienの答えとして 'gsub'が必要です。 – Justin

+0

@Justin:あなたがコメントしたときに私はすでにそれを修正していたと思いますが、ありがとうございます。 :-) – ruakh

関連する問題