Как добавить один биметр с NA в кадр данных - PullRequest
0 голосов
/ 14 сентября 2018

Прежде всего, я новичок в программировании на 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
...