Python 从多个列中筛选和替换

Python 从多个列中筛选和替换,python,r,linux,awk,sed,Python,R,Linux,Awk,Sed,我有一个文件,其中必须将大于0.05的pval>0.05替换为NA,换句话说,保留pval0.05替换为NA 例如: Rv_FC Rv_Pval Gc_FC Gc_Pval ...... 2 0.001 3 0.99 3 0.99 1 0.0002 3 0.0001 2 0.89 输出: Rv_FC Rv_Pval Gc_FC Gc_Pval ...... 2

我有一个文件,其中必须将大于0.05的pval>0.05替换为NA,换句话说,保留pval<0.05并将pval>0.05替换为NA

例如:

Rv_FC    Rv_Pval  Gc_FC  Gc_Pval ......
2          0.001   3      0.99
3          0.99    1      0.0002
3          0.0001  2      0.89
输出:

Rv_FC    Rv_Pval  Gc_FC  Gc_Pval ......
2          0.001   3      NA 
3          NA      1      0.0002
3          0.0001  2      NA
仅应考虑pval柱,如果其值大于0.05,则应将其替换为NA

优点:pval列位于第三、第五、第七。。。列

这个应该可以:

awk 'BEGIN{ OFS = "\t" }NR==1{ for ( i = 1; i <= NF; i++) if ( $i ~"Pval" ) a[i]; print $0}NR>1{for ( i in a ) if ( $i > 0.5 ) $i = "NA"; print $0 }' file

堆栈溢出不是代码编写服务。提供您自己的尝试。只需对Pval和replace列进行子集设置,即i1 0.05\是否确定标记?你真的想要一个涉及、、和的解决方案吗?当然,我在R、awk中试过了,当我做不到的时候我来了..嗨。欢迎来到StackOverflow。请阅读并分享一个最小的、完整的、可验证的代码示例,或者您迄今为止为解决问题所做或尝试的任何事情。然后单击“编辑”编辑您的问题,以便我们提供帮助。mhhh。。。。。这很奇怪。对我来说,它工作完美。它产生了任何输出吗?对我来说也很好。对于我在2:89{forj in seq3,47,2{iftab[i,j]<0.05{printtab[i,j]}}}这是我写的R代码,但它在一条直线上给了我结果,基本上,我有89行47列,值从第3列开始,出现在每一个备用列中,即第5列、第7列…@JFS31:它起作用了!!稍微修改一下$i>0.05,而不是$i>0.5,我的错是我没有检查。。非常感谢你的帮助@vivekkashyap很高兴我能帮助你。如果你能接受我的回答,那就太好了。
Rv_FC    Rv_Pval  Gc_FC  Gc_Pval  
2        0.001     3      NA
3        NA        1      0.0002
3        0.0001    2      NA