あたり正しい週数を取得する:私はいくつかの計算を行っている。この出力に基づいて分割期日と私は週</strong>にこの年<strong>年に日付を分割し、次のコードでは年間
library(lubridate)
start = as.Date('2002-01-01')
end = as.Date('2017-01-01')
dates = sample(seq(as.Date('2002-01-01 00:00:00'), as.Date('2017-04-01 00:00:00'), by="day"), end-start,replace = FALSE)
splitByYears = split(dates, year(dates))
splitYearsByWeeks = lapply(splitByYears, function(x) split(x, isoweek(x)))
。
>splitYearsByWeeks
...
$`2011`$`52`
[1] "2011-01-01" "2011-01-02" "2011-12-26"
$`2012`
$`2012`$`1`
[1] "2012-12-31" "2012-01-02" "2012-01-06" "2012-01-08"
...
ここ
2011-01-01と2011-01-02 2010年の52th週の一部が、あるため、分割の最初の:私は、この手順が完全に動作しないことに気づいたいくつかのデータをプロットして場合にのみ、 2012年12月31日に同じ問題が発生します。この日付は2013年の1週目の一部ですが、毎年別々に機能を適用するため2012年の第1週に割り当てられます。
毎年分割して毎年分けて週に分割すると、必要なフォーマットが得られますが、週と年の関係は正しくありません。私は週による最初の年よりも、分割することができ、正しい週数を取得するには、次の
splitByWeek = split(dates, isoweek(dates))
splitWeeksByYear = lapply(splitByWeek, function(x) split(x, year(x)))
をしかし、形式はそれは私が必要とするものではありません。
>splitWeeksByYear
...
$`53`
$`53`$`2004`
[1] "2004-12-31" "2004-12-29" "2004-12-28"
$`53`$`2005`
[1] "2005-01-01"
$`53`$`2009`
[1] "2009-12-28"
$`53`$`2015`
[1] "2015-12-30"
$`53`$`2016`
[1] "2016-01-03"
取得するための最良の方法は何ですか正しい週の形式で私はが必要です:$ year $ weekNumのリスト?
'フォーマット(日付、 "%Y-%U") '? –