汇总计数数据并返回R中因子的最高级别

汇总计数数据并返回R中因子的最高级别,r,dplyr,R,Dplyr,我对R相当陌生,我有一个数据框架,其中包括在各个站点检测到的个体鸟类数量,以及每个个体的繁殖证据(一个有序因子)。它看起来像这样: station<-c('stn1','stn1','stn1','stn1','stn1','stn2','stn2') species<-c('PBGR','PBGR','SORA','SORA','SORA','LCSP','SORA') interval1<-c(0,0,1,1,0,1,0) interval2<-c(1,1,0,0,1

我对R相当陌生,我有一个数据框架,其中包括在各个站点检测到的个体鸟类数量,以及每个个体的繁殖证据(一个有序因子)。它看起来像这样:

station<-c('stn1','stn1','stn1','stn1','stn1','stn2','stn2')
species<-c('PBGR','PBGR','SORA','SORA','SORA','LCSP','SORA')
interval1<-c(0,0,1,1,0,1,0)
interval2<-c(1,1,0,0,1,0,1)
breeding.evidence<-c('A','A','S','S','D','S','S')
breeding.evidence<-factor(breeding.evidence,levels=c('S','D','A'))

df<-data.frame(station,species,interval1,interval2,breeding.evidence)

>df
  station species interval1 interval2 breeding.evidence
1    stn1    PBGR         0         1                 A
2    stn1    PBGR         0         1                 S
3    stn1    SORA         1         0                 S
4    stn1    SORA         1         0                 S
5    stn1    SORA         0         1                 D
6    stn2    LCSP         1         0                 S
7    stn2    SORA         0         1                 S
哪个有效,哪个回报

  station species interval1 interval2 
1    stn1    PBGR         0         2 
2    stn1    SORA         2         1                 
3    stn2    LCSP         1         0 
4    stn2    SORA         0         1 
但是我已经失去了繁殖的证据,我尽可能地尝试,我不知道什么代码可以工作。最后我想说的是:

  station species interval1 interval2  breeding.evidence
1    stn1    PBGR         0         2                  A
2    stn1    SORA         2         1                  D       
3    stn2    LCSP         1         0                  S
4    stn2    SORA         0         1                  S

提前感谢您的帮助

也许您可以定义另一个变量,设置育种的顺序。证据如下所示

df <- df %>%
  mutate(ind = case_when(breeding.evidence == "A"~1L,
                         breeding.evidence == "D"~2L,
                         breeding.evidence == "S"~3L,
                         TRUE~NA_integer_))
输出
#一个tible:4 x 5
#组别:车站[?]
站点物种间隔1间隔2繁殖。证据
1 stn1 PBGR 0 2 A
2 stn1 SORA 2 1 D
3 stn2 LCSP 1 0 S
4 stn2 SORA 0 1 S

繁殖。证据在您的实际数据集中具有相同的3个级别?在您的数据集中,相同的
物种
属于两种不同的
繁殖。证据
1 stn1 PBGR 0 1 A
2 stn1 PBGR 0 1 S
)。所以我不确定你如何能得到你的结果。谢谢,这是非常有帮助的!事实上,我只需要在因子中添加一个有序的=T参数(breeding.evidence…),而您建议的左键连接非常有效。
df <- df %>%
  mutate(ind = case_when(breeding.evidence == "A"~1L,
                         breeding.evidence == "D"~2L,
                         breeding.evidence == "S"~3L,
                         TRUE~NA_integer_))
df%>%
  group_by(station,species)%>%
  summarise_at(vars(interval1:interval2),sum) %>%
  left_join(df %>%
              group_by(station, species) %>%
              arrange(ind) %>%
              summarise_at(vars(breeding.evidence), funs(first)))
# A tibble: 4 x 5
# Groups:   station [?]
  station species interval1 interval2 breeding.evidence
  <fct>   <fct>       <dbl>     <dbl> <fct>            
1 stn1    PBGR            0         2 A                
2 stn1    SORA            2         1 D                
3 stn2    LCSP            1         0 S                
4 stn2    SORA            0         1 S