3

「明白な」質問をするために改造されるという極端なリスクで、Rで2つの日付の時間の違いを見つけるにはどうすればよいですか?

> ISOdate(2004,1,6) - ISOdate(2004,1,1)
Time difference of 5 days
> as.POSIXlt(ISOdate(2004,1,6) - ISOdate(2004,1,1))
Error in as.POSIXlt.default(ISOdate(2004, 1, 6) - ISOdate(2004, 1, 1)) : 
  do not know how to convert 'ISOdate(2004, 1, 6) - ISOdate(2004, 1, 1)' to class "POSIXlt"
 > (ISOdate(2004,1,6) - ISOdate(2004,1,1))$year
Error in (ISOdate(2004, 1, 6) - ISOdate(2004, 1, 1))$year : 
  $ operator is invalid for atomic vectors
> (ISOdate(2004,1,6) - ISOdate(2004,1,1))$mon
Error in (ISOdate(2004, 1, 6) - ISOdate(2004, 1, 1))$mon : 
  $ operator is invalid for atomic vectors
4

1 に答える 1

16

関数difftimeを引数 とともに使用しunits="hours"ます。

x <- c(ISOdate(2004,1,6), ISOdate(2004,1,1))
difftime(x[1], x[2], units="hours")
Time difference of 120 hours

どこを見るべきかどうやって知ったのですか?

まず、2 回減算したときに得られるオブジェクトの構造を見てみましょう。

str(x[1] - x[2])
Class 'difftime'  atomic [1:1] 5
  ..- attr(*, "units")= chr "days"

これで、 のクラスを扱っていることがわかりましたdifftime。ここから簡単にヘルプを見つけることができます:?difftime

于 2012-10-19T15:10:07.127 に答える