Прежде всего, я новичок в программировании на R, любые предложения о том, как я могу сделать это подмножество, будут высоко оценены.
У меня есть оригинальный фрейм данных, который называется Seeds_Sm
> str(Seeds_Sm)
'data.frame': 131 obs. of 16 variables:
$ year : Factor w/ 4 levels "2013","2014",..: 1 1 1 1 1 1 1 1 1 1 ...
$ month : Ord.factor w/ 12 levels "Jan"<"Feb"<"Mar"<..: 11 11 12 11 12 12 12 12 12 11 ...
$ Habitat : Factor w/ 2 levels "Woodland","Matrix": 1 1 2 1 1 1 1 1 1 1 ...
$ Microhabitat : Factor w/ 16 levels "","Cistus","Coccifera",..: 9 10 6 4 3 4 7 9 13 3 ...
$ Seed_sp : Factor w/ 7 levels "Arum_italicum",..: 3 3 3 3 3 3 3 3 3 3 ...
$ Disperser_sp : Factor w/ 2 levels "other_spp","Sylvia_melanocephala": 2 2 2 2 2 2 2 2 2 2 ...
$ Nseeds_DNA : int 3 1 1 2 2 1 4 3 2 1 ...
$ Nseeds_SRtotal : num 11 3 4 8 2 7 9 9 6 3 ...
$ N : int 5 4 31 4 4 4 5 5 1 4 ...
$ Nseeds_DNAtotal: int 11 3 4 8 3 6 11 7 5 3 ...
$ propDNA : num 1 1 1 1 1.5 ...
$ Nseeds_est : int 3 1 1 2 1 1 3 4 2 1 ...
$ freq_contr : num 0.273 0.333 0.25 0.25 0.667 ...
$ Nseeds_est_2 : int 3 1 1 2 1 1 3 4 2 1 ...
$ bimonth : Factor w/ 6 levels "Jan-Feb","Mar-Apr",..: 6 6 6 6 6 6 6 6 6 6 ...
$ Samplingyear : Factor w/ 2 levels "2013/2014","2014/2015": 1 1 1 1 1 1 1 1 1 1 ...
Теперь я хочу разделить данные на первый год выборки (год1) и второй (год2)
> year1 <- subset(Seeds_Sm, Seeds_Sm$Samplingyear == "2013/2014")
str(year1)
>year2 <- subset(Seeds_Sm, Seeds_Sm$Samplingyear == "2014/2015")
str(year2)
но как у меня нет данных для биметра "май-июнь" в течение второго года отбора проб (т.е. в год2 ), этот биместер исчез, и мне нужны все биметры (даже те, у кого нет данных)
Я пытался с этим:
> year2$bimonth <- factor(year2$bimonth, c("Jan-Feb", "Mar-Apr", "May-Jun", "Jul-Aug", "Sep-Oct", "Nov-Dec"))
year2$bimonth
И я получил
> year2$bimonth
[1] Jul-Aug Jul-Aug Jul-Aug Mar-Apr Mar-Apr Jul-Aug Jul-Aug Jul-Aug Sep-Oct Jan-Feb Sep-Oct
[12] Sep-Oct Mar-Apr Sep-Oct Jan-Feb Jul-Aug Jan-Feb Mar-Apr Jul-Aug Sep-Oct Sep-Oct Jan-Feb
[23] Jan-Feb Jan-Feb Sep-Oct Jul-Aug Jul-Aug Jul-Aug Jan-Feb Sep-Oct Sep-Oct Sep-Oct Sep-Oct
[34] Nov-Dec Mar-Apr Sep-Oct Sep-Oct Sep-Oct Jan-Feb Jul-Aug Jul-Aug Sep-Oct Sep-Oct Nov-Dec
[45] Nov-Dec Nov-Dec Nov-Dec Nov-Dec Nov-Dec Nov-Dec
>Levels: Jan-Feb Mar-Apr May-Jun Jul-Aug Sep-Oct Nov-Dec
но когда я создал новый агрегат, биместер май-июнь не появился
> year2_Seeds_summary <- aggregate(Nseeds_est ~ Disperser_sp + bimonth, year2, sum, na.rm = TRUE)
> year2_Seeds_summary
Disperser_sp bimonth Nseeds_est
1 Sylvia_melanocephala Jan-Feb 35
2 Sylvia_melanocephala Mar-Apr 6
3 Sylvia_melanocephala Jul-Aug 76
4 Sylvia_melanocephala Sep-Oct 38
5 Sylvia_melanocephala Nov-Dec 36
Мне нужно это:
> year2_Seeds_summary
Disperser_sp bimonth Nseeds_est
1 Sylvia_melanocephala Jan-Feb 35
2 Sylvia_melanocephala Mar-Apr 6
**New row Sylvia_melanocephala May-Jun 0**
3 Sylvia_melanocephala Jul-Aug 76
4 Sylvia_melanocephala Sep-Oct 38
5 Sylvia_melanocephala Nov-Dec 36