1

次のように、R で時間間隔のみ (日付なし) のデータ セットを取得するにはどうすればよいですか。

TREATMENT_A TREATMENT_B

1:01:12 0:05:00

0:34:56 1:08:09

平均時間などを計算し、y軸に時間間隔でボックスプロットを描画しますか?

私はRが初めてで、これを検索しましたが、ネットで例が見つかりませんでした。

ありがとう

4

2 に答える 2

2

chron-package には、算術演算をサポートする「times」クラスがあります。また、これらすべてを POSIXct オブジェクトで実行し、日付と時刻の出力をフォーマットして日付を含めないようにすることもできます。axis.POSIXct関数には、format時間出力を可能にする引数があると思いました。ただし、適切にディスパッチされないように見えるため、「手動で」軸を構築する必要がありました。

dft <- data.frame(x= factor( sample(1:2, 100, repl=TRUE)), 
                  y= Sys.time()+rnorm(100)*4000 )
boxplot(y~x, data=dft, yaxt='n')
axis(2, at=seq(from=range(dft$y)[1], to =range(dft$y)[2], by=3000) , 
         labels=format.POSIXct(seq(from=range(dft$y)[1], to =range(dft$y)[2], by=3000), 
                                 format ="%H:%M:%S") )

ここに画像の説明を入力

適切な方法があることが判明しました(プロットに向けるべきだAxis.POSIXtと思いましたが、「y」引数のクラスを認識していないようでした):boxplot

boxplot(y~x, data=dft, yaxt='n')
Axis(side=2, x=range(dft$y), format ="%H:%M:%S")

ここに画像の説明を入力

「より単純な」ものに対するあなたの要求に関しては、上記で定義された dft データフレームを POSIXct 時間で使用して、これらの ggplot2 ベースのソリューションを見てください。(私は chron-times オブジェクトを試しましたが、ggplot がそのクラスをサポートしていないというメッセージを受け取りました):

require(ggplot2); p <- ggplot(dft, aes(x,y))
p + geom_boxplot()

ここに画像の説明を入力

于 2012-06-26T18:14:00.100 に答える
0

「lubridate」パッケージとその中の「hms」機能をチェックしてください。

于 2012-06-26T18:07:30.887 に答える