【发布时间】:2019-05-17 03:56:24
【问题描述】:
我想将总乘积小于 5 行的样本中的值更改为零,而其他保持不变。
我试过了:
dat %>%
group_by(snpID) %>%
mutate_at(vars(2:6),
list(~ifelse(sum(.) < 5, 0, .)))
结果:(两行之和替换每一行)
dat %>%
group_by(snpID) %>%
mutate_at(vars(2:6),
list(~ifelse(sum(.) < 5, 0, ungroup(.))))
错误:
UseMethod("ungroup") 中的错误: 没有适用于“取消组合”的方法应用于“c('integer', 'numeric')”类的对象
原文:
snpID f1 f2 f3 m1 m2 m3
A_001 2 5 2 0 1 3
A_001 0 3 8 2 5 10
A_002 11 5 12 7 0 2
A_002 2 6 5 14 5 3
我想要什么:
snpID f1 f2 f3 m1 m2 m3
A_001 0 5 2 0 1 3
A_001 0 3 8 0 5 10
A_002 11 5 12 7 0 2
A_002 2 6 5 14 5 3
f1 和 m1 样本中 A_001 的总和
任何帮助将不胜感激。
【问题讨论】:
-
我不确定我是否完全理解您要执行的操作。您要关注哪些行? F 行和 M 行需要交互吗?如果第 1 行的 f1 为 0,为什么最下面一行的 f1 也不是 0?
-
感谢您帮助我编辑帖子。 F 和 M 列不需要交互。我的基因座 ID 是 A_001 和 A_002。只需要过滤总深度小于 5 的轨迹。demarsylvain 得到了我需要的脚本。