大規模なRデータフレーム(12行)の日付範囲定義に基づいて、大規模なRデータフレーム(200万行以上)の各行を分類するにはどうすればよいですか?日付範囲に基づいて分類するR
id date sex
1 160520 2016-11-22 1
2 1029735 2016-11-12 1
3 1885200 2016-11-05 1
4 2058366 2015-09-26 2
5 2058367 2015-09-26 1
6 2058368 2015-09-26 1
私の小さなデータフレーム、季節を、その全体がこのようになります:
私の大きなデータフレーム、キャプチャは、head(captures)
経由で呼び出されたときに、このようになります
Season Opening.Date Closing.Date
2016 2016-09-24 2017-01-15
2015 2015-09-26 2016-01-10
2014 2014-09-27 2015-01-11
2013 2013-09-28 2014-01-12
2012 2012-09-22 2013-01-13
2011 2011-09-24 2012-01-08
2010 2010-09-25 2011-01-16
2009 2009-09-26 2010-01-17
2008 2008-09-27 2009-01-18
2007 2007-09-22 2008-01-13
2006 2006-09-23 2007-01-14
2005 2005-09-24 2006-01-15
私がする必要があります私のキャプチャのデータフレームに 'season'カラムを追加します。値は、captures$date
がwhenとwhereに基づいて決定され、季節で定義された範囲に含まれます。
私が思いついた長年の解決策は、自分のデータフレームが非常に大きいので、私にとってはうまくいきません。
#add packages
library(dplyr)
library(lubridate)
#make blank column
captures$season=NA
for (i in 1:length(seasons$Season)){
for (j in 1:length(captures$id{
captures$season[j]=ifelse(between(captures$date[j],ymd(seasons$Opening.Date[i]),ymd(seasons$Closing.Date[i])),seasons$Season[i],captures$season[j])
}
}
また、これは毎回Rがクラッシュするため、私にとってはうまくいきません。私はこれもRのベクトル化を利用していないことを認識しています。
又はs.Opening_Dateとs.Closing_Date'間おそらく' c.date。また、変数名を二重引用符で囲むか、[...]で囲むことで変数名を変更する必要はありません。 –