我想用dplyr总结一个表。以下是我要继续的方式:
year region week site species gps_clutch
2017 sud 18 6 au 337
2017 sud 20 10 au 352
2017 sud 22 10 au 352
2017 sud 24 10 au 352
2017 sud 18 6 aio 337
2017 sud 20 6 aio 352
2017 sud 22 6 au 352
2018 sud 20 6 au 337
2018 sud 20 10 au 352
2018 sud 22 10 au 352
2018 sud 22 10 aio 352
2018 sud 22 6 au 352
2017 nor 19 5 au 337
2017 nor 21 2 au 352
2017 nor 23 5 au 352
2017 nor 25 2 au 352
2017 nor 19 5 aio 337
2017 nor 25 5 aio 352
2017 nor 19 5 au 337
2018 nor 21 2 aio 352
2018 nor 23 5 aio 352
2018 nor 25 2 au 352
2018 nor 23 5 aio 337
2018 nor 23 5 au 352
这段代码可以很好地扩展网格,如我所愿:
dat %>%
group_by(region) %>%
expand(year,site, species,week)
下面的代码也可以用来获取计数值,但不会按照我的意愿扩展网格(我只得到我每年观察一些事情的周数列表,而不是两年中采样的总周数)。这意味着如果在“sud”“2017”中我只有第20周和第22周的记录,那么网格将不会扩展到第18周和第24周:
field_subsetnord %>%
group_by(year,region,site,species,week) %>%
summarise(count_clutch=length(gps_clutch)) %>%
complete(week,nesting(year,sites,species), fill = list(count_clutch = 0))
这是我想在最后得到的表格:
year region week site species count
2017 sud 18 6 au 1
2017 sud 20 6 au 0
2017 sud 22 6 au 1
2017 sud 24 6 au 0
2017 sud 18 6 aio 1
2017 sud 20 6 aio 1
2017 sud 22 6 aio 0
2017 sud 24 6 aio 0
2017 sud 18 10 au 0
2017 sud 20 10 au 1
2017 sud 22 10 au 1
2017 sud 24 10 au 1
2017 sud 18 10 aio 0
2017 sud 20 10 aio 0
2017 sud 22 10 aio 0
2017 sud 24 10 aio 0
2018 sud 18 6 au 0
2018 sud 20 6 au 1
2018 sud 22 6 au 1
2018 sud 24 6 au 0
2018 sud 18 6 aio 0
2018 sud 20 6 aio 0
2018 sud 22 6 aio 0
2018 sud 24 6 aio 0
2018 sud 18 10 au 0
2018 sud 20 10 au 1
2018 sud 22 10 au 1
2018 sud 24 10 au 0
2018 sud 18 10 aio 0
2018 sud 20 10 aio 0
2018 sud 22 10 aio 1
2018 sud 24 10 aio 0
and so on for 2018...
任何建议混合这两个代码将不胜感激:)
你的两种方法非常接近。基本上他们只需要结合起来就能得到你想要的东西。 :)
按区域分组然后complete()
首先是数据集,然后按所有变量和summarise()
重新组合。由于gps_clutch
现在将缺少值,您可以在!is.na
语句中总结非缺失值(通过summarise()
)来计算离合器。
dat %>%
group_by(region) %>%
complete(year, site, species, week) %>%
group_by(year, region, site, species, week) %>%
summarise(count_clutch = sum( !is.na(gps_clutch) ) )
# A tibble: 64 x 6
# Groups: year, region, site, species [16]
year region site species week count_clutch
<int> <fct> <int> <fct> <int> <int>
1 2017 nor 2 aio 19 0
2 2017 nor 2 aio 21 0
3 2017 nor 2 aio 23 0
4 2017 nor 2 aio 25 0
5 2017 nor 2 au 19 0
6 2017 nor 2 au 21 1
7 2017 nor 2 au 23 0
8 2017 nor 2 au 25 1
9 2017 nor 5 aio 19 1
10 2017 nor 5 aio 21 0
# ... with 54 more rows