22

Started人間の被験者が研究に登録された日付と呼ばれる変数と、被験者が最後に手術を受けた日付と呼ばれる別の変数がdos1あります。最後の手術から入学日まで何ヶ月かを計算したい. 私は試した:

as.period(syrrupan$Started-syrrupan$dos1,units=c("month"))

私はこれが私に次のようなものを与えることを期待していました:

14, 18, 1, 26 

各数字は月数です。

代わりに私は得る:

1 year, -4 months, -5 days and -1 hours   1 year, -5 months, -23 days and -1 hours   1 year, -7 months, 2 days and -1 hours   1 year, -8 months, -28 days and 1 hour   1 year, -7 months, -23 days and 1 hour.   

月の数値だけを取得するにはどうすればよいですか?

4

3 に答える 3

36

difftime代わりに次を使用してみてください。

difftime(syrrupan$Started,syrrupan$dos1,units="days")

これにより、クラスのオブジェクトが得られることに注意してください。difftime数値ベクトルが必要な場合は、それをラップしas.numericます。また、単位のオプションとして月を選択することはできませんが、固定長の時間単位を使用する必要があることに注意してください。

于 2010-09-22T09:03:41.850 に答える
7

それは間違いなくlubridateのバグです。エラー報告を作成しましたので、バージョン 0.1 で修正します。

http://github.com/hadley/lubridate/issues#issue/75

お知らせいただきありがとうございます。

于 2010-09-22T19:15:26.213 に答える