これは私のデータフレーム内に含まれる情報です:
## minuteofday: factor w/ 89501 levels "2013-06-01 08:07:00",...
## dDdt: num 7.8564 2.318 ...
## minutes: POSIXlt, format: NA NA NA
分の列を日付/時刻形式に変換する必要があります。
minuteave$minutes <- as.POSIXlt(as.character(minuteave$minuteofday), format="%m/%d/%Y %H:%M:%S")
私はもう試した as.POSIXlt
、as.POSIXct
およびas.Date
。どれも機能しませんでした。誰もが何か考えがありますか。
目標は、分とdDdtをプロットすることですが、それを要因として、指定した期間にプロットすることはできません。私は次に何をしようかわからない...
日時または日付として解析する前に、as.character()
を挿入する必要があります。
因子は、常にそのレベルに対応する数値として最初に戻ります。
read.csv()
などにファクターとしてストアを指定しないことで、ファクターから文字への変換を保存できます:_stringsAsFactors=FALSE
_。また、グローバルオプションとして設定することもできます。
文字として取得したら、フォーマット文字列をデータに一致させてください:
_R> as.POSIXct("2013-06-01 08:07:00", format="%Y-%m-%d %H:%M:%S")
[1] "2013-06-01 08:07:00 CDT"
R>
_
_%Y-%m-%d
_とは対照的に、使用した_%m/%d/%y
_に注意してください。
2016年1月3日に編集:これは、factor
を含む多くのタイプから自動的に変換する anytime パッケージのおかげで、はるかに簡単になりました。 フォーマット文字列を必要とせずに。
_R> as.factor("2013-06-01 08:07:00")
[1] 2013-06-01 08:07:00
Levels: 2013-06-01 08:07:00
R>
R> library(anytime)
R> anytime(as.factor("2013-06-01 08:07:00"))
[1] "2013-06-01 08:07:00 CDT"
R>
R> class(anytime(as.factor("2013-06-01 08:07:00")))
[1] "POSIXct" "POSIXt"
R>
_
ご覧のとおり、factor変数をanytime()
に入力するだけで、目的のPOSIXct型が出力されます。
これを試して
library(lubridate) minuteave$minutes <- ymd_hms(minuteave$minutes)
これは、minuteave $ minutesをPOSIXctオブジェクトとして返します。
これがお役に立てば幸いです。