我在不同深度采集了大量物种丰富的样本。数据排列如下:
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))其中,样品和深度后的柱是独立的物种。基本上,我只想选择存在于多个深度的物种,并创建一个新的数据框架,就像这样:
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))如能提供任何帮助,将不胜感激:)
发布于 2022-09-16 06:28:33
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 1https://stackoverflow.com/questions/73725534
复制相似问题