首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何才能创建一个新的数据,只存在于多种深度的物种?

我如何才能创建一个新的数据,只存在于多种深度的物种?
EN

Stack Overflow用户
提问于 2022-09-15 04:07:39
回答 1查看 63关注 0票数 1

我在不同深度采集了大量物种丰富的样本。数据排列如下:

代码语言:javascript
复制
df1 <- data.frame(sample = c('a', 'b', 'c', 'd', 'e','f','g','h','i'),
                  depth = c(10,20,30,10,20,30,10,20,30),
                  sp1 = c(1,0,0,2,0,0,5,0,0),
                  sp2 = c(1,4,6,5,3,1,5,6,4),
                  sp3 = c(0,0,0,0,2,0,0,0,0),
                  sp4 = c(1,0,5,4,3,7,8,4,1))

其中,样品和深度后的柱是独立的物种。基本上,我只想选择存在于多个深度的物种,并创建一个新的数据框架,就像这样:

代码语言:javascript
复制
df2 <- data.frame(sample = c('a', 'b', 'c', 'd', 'e','f','g','h','i'),
                  depth = c(10,20,30,10,20,30,10,20,30),
                  sp2 = c(1,4,6,5,3,1,5,6,4),
                  sp4 = c(1,0,5,4,3,7,8,4,1))

如能提供任何帮助,将不胜感激:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-16 06:28:33

代码语言:javascript
复制
library(dplyr)

df1 %>%
  select(1:2, starts_with('sp') & where(~ n_distinct(df1$depth[.x != 0]) > 1))

#   sample depth sp2 sp4
# 1      a    10   1   1
# 2      b    20   4   0
# 3      c    30   6   5
# 4      d    10   5   4
# 5      e    20   3   3
# 6      f    30   1   7
# 7      g    10   5   8
# 8      h    20   6   4
# 9      i    30   4   1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73725534

复制
相关文章

相似问题

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