首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >聚合数据问题

聚合数据问题
EN

Stack Overflow用户
提问于 2020-09-10 20:43:55
回答 1查看 30关注 0票数 1

数据集:

代码语言:javascript
复制
# Groups:   SITEPLOT [21,143]
   L4_KEY              HEMIAB SITEPLOT
   <fct>                <dbl> <fct>   
 1 82g  Downeast Coast      0 ACAD 1  
 2 82g  Downeast Coast      0 ACAD 100
 3 82g  Downeast Coast      0 ACAD 101
 4 82g  Downeast Coast      0 ACAD 102
 5 82g  Downeast Coast      0 ACAD 103
 6 82g  Downeast Coast      0 ACAD 104
 7 82g  Downeast Coast      0 ACAD 105
 8 82g  Downeast Coast      0 ACAD 107
 9 82g  Downeast Coast      0 ACAD 108
10 82g  Downeast Coast      0 ACAD 109
# ... with 21,133 more rows

HEMIAB表示某一物种的丰度。此数据集是基于绘图级别的。我想知道有多少不同的L4_KEYs没有丰富的这种物种,即那些没有任何地块有HEMIAB >0。由于这个数据集不是在L4_KEY级别上,所以我很难找到一个简单的解决方案。任何帮助都会很好。我尝试过各种dplyr和聚合解决方案,但是无法让它基于L4_KEY,而不是基于绘图级别。因为某种原因,我对此有异议

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-10 20:45:33

我们可以根据'HEMLAB‘的值对'L4_KEY’列进行子集,即那些具有'HEMLAB‘> 0的列,获取unique元素,从'L4_KEY’的levels中使用setdiff,并得到那些值不大于0的length (在base R中)。

代码语言:javascript
复制
length(setdiff(levels(df1$L4_KEY), unique(df1$L4_KEY[df1$HEMLAB > 0])))

另一个选项是按'L4_KEY‘分组,filter 'HEMLAB’中的all值小于或等于0,ungroup并获取distinct元素

代码语言:javascript
复制
library(dplyr)
out <- df1 %>%
   group_by(L4_KEY) %>%
   filter(all(HEMLAB <=0)) %>%
   ungroup %>%
   distinct(L4_KEY) %>%
   droplevels()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63837431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档