次のように、R で時間間隔のみ (日付なし) のデータ セットを取得するにはどうすればよいですか。
TREATMENT_A TREATMENT_B
1:01:12 0:05:00
0:34:56 1:08:09
平均時間などを計算し、y軸に時間間隔でボックスプロットを描画しますか?
私はRが初めてで、これを検索しましたが、ネットで例が見つかりませんでした。
ありがとう
次のように、R で時間間隔のみ (日付なし) のデータ セットを取得するにはどうすればよいですか。
TREATMENT_A TREATMENT_B
1:01:12 0:05:00
0:34:56 1:08:09
平均時間などを計算し、y軸に時間間隔でボックスプロットを描画しますか?
私はRが初めてで、これを検索しましたが、ネットで例が見つかりませんでした。
ありがとう
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()
「lubridate」パッケージとその中の「hms」機能をチェックしてください。