5

これは簡単な作業のように思えますが、R での実行方法の例を見つけるだけでなく、実行するのも困難です。

約 75K レコードのデータ フレームがあります。1 つのフィールドには日付があり、約 11 年前にさかのぼります。次のコードを使用して時分秒を取り除いたので、年-月-日だけです

 dat$date=round.POSIXt(dat$date,units="day")

日付が 2008-07-01 から 2009-06-30 の間である場合、FY09 が割り当てられるような日付に基づいて新しいフィールド「FiscalYear」を作成しようとしています...その後、2009-07-01 から 2010- 06-30 FY10 などに割り当てられます...

私が試してきた方法は、 >= && <= を使用して ifelse を使用して日付範囲を設定することですが、これは機能しません。何かご意見は?

4

1 に答える 1

8

基本的に、ベンが言ったこと。これが実際にどのように見えるかの例です。(Date時間/分/秒の情報は必要ないように思われるので、クラスオブジェクトを使用しました。)

date <- seq(from = as.Date("2010/5/30"), by="week", length=10) ## Example data

cuts <- seq(from = as.Date("2000/7/1"), by="year", length=13) 
labs <- paste0("FY", 1:12)

cut(date, breaks = cuts, labels = labs)
#  [1] FY10 FY10 FY10 FY10 FY10 FY11 FY11 FY11 FY11 FY11
# Levels: FY1 FY2 FY3 FY4 FY5 FY6 FY7 FY8 FY9 FY10 FY11 FY12
于 2012-10-11T17:03:04.737 に答える