我需要在一列中获得独占的ASV,即在样本MM2中出现only的ASV_1(因此在其他样本中为"0"),对于其余样本依此类推. 我试过这样的解决方案,但我相信有一个更干净的 Select ,主要是因为样本数量很大(我已经发布了一个简化的版本).谢谢你的pip !!

asv_mm2 <- asv_table %>% 
  filter(MM2 > 0 & MM4 == 0  & MM6 == 0 & MM22 == 0 & MM26 == 0)

          MM2   MM4   MM6  MM22  MM26
asv_1    1454  1632  1210   108   834
asv_2   30428 29083 24248  5338  5686
asv_3    7299  5559  5741 14373 12186
asv_4     325   315   234    14   172
asv_5    2846  3852  2388 10551  7789
asv_6    1242  1258  1234   239  1020
asv_7     290   245   235   218   488

推荐答案

您可以使用if_all()tidy selection以更简洁的表示来过滤数据.

asv_table %>% 
  filter(MM2 > 0 & if_all(-MM2, ~ .x == 0))

# Also
# if_all(-MM2, `==`, 0)

R相关问答推荐

使用列表列作为case_when LHS的输入

根据列中的数字移动单元格位置

在图内移动y轴上的标签

编码变量a、b、c以匹配来自另一个数据点的变量x

以R中的正确顺序将日期时间字符列转换为posixct

如何使用`ggplot2::geom_segment()`或`ggspatial::geom_spatial_segment()`来处理不在格林威治中心的sf对象?

更改默认系列1以更改名称

将数据集中的值增加到当前包含的最大值

使用strsplit()将向量操作为数据框

使用across,starts_with和ifelse语句变更多个变量

根据列A中的差异变异列,其中行由列B中的相对值标识

R中的哈密顿滤波

如何将R中数据帧中的任何Nas替换为最后4个值

打印XTS对象

使用for循环和粘贴创建多个变量

从非重叠(非滚动)周期中的最新数据向后开窗并在周期内计数

函数可以跨多个列搜索多个字符串并创建二进制输出变量

循环遍历多个变量,并将每个变量插入函数R

如何在条形图中的x和填充变量中包含多个响应变量?

是否从列中删除★符号?