如果所有行均为0,NA和1,则替换所有0

奥比多比

我的问题是这样的:

我想从第4列检查所有的行,直到最后的字段值是否是唯一的0(格式为0.00),1(格式为1.00),或者NA,如果是更换0其值0.001

例如这样的一行:

MA_10 49498 49499 NA NA NA NA 0.00 NA 1.00 NA NA NA NA 1.00 NA NA NA NA 1.00 NA NA NA NA NA NA 1.00 NA NA NA NA

这是预期的输出:

MA_10 49498 49499 NA NA NA NA 0.001 NA 1.00 NA NA NA NA 1.00 NA NA NA NA 1.00 NA NA NA NA NA NA 1.00 NA NA NA NA

但它不应碰到这样的行:

MA_10 49499 49500 NA NA NA NA 0.00 NA 0.50 NA NA NA NA 1.00 NA NA NA NA 1.00 NA NA NA NA NA NA 1.00 NA NA NA NA

因为它的值与NA,0和1不同,为0.50。

我确实是这样,但无法正常工作,因为它也会代替1。

#!/bin/bash -ue
BEGIN { OFS = FS = "\t" }

NR != 1 {
    for (i = 4; i <= NF; ++i) {
        if ($i = "0" || $i= "1") {
            $i = "0.01";
        }
    }
}

{ print $0 }

提前致谢!

卡西莫多

01.awk

BEGIN{FS=OFS="\t"}
skip=0
{
    for(i=4;i<=NF;i++){
        if($i !~ /NA/ && $i!=0 && $i!=1){
            skip=1
            break
        }
    }
}
!skip{gsub(/0\.0+/,"0.001")}
1

for循环尝试在第四列开始的一行中寻找一个非NA,非零和非一字段。如果找到,skip则设置为1,因此该行

!skip{gsub(/0\.0+/,"0.001")}

不会执行,0.00并且不会变为0.001

执行脚本

awk -f 01.awk inputfile

附言:#!/bin/bash -ue在您的尝试之上,实际上没有任何意义,因为您编写的是awk脚本,而不是bash脚本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果R的所有值均为0,则填充0

来自分类Dev

删除pandas数据框中所有均为0或NA的所有行

来自分类Dev

如果所有列均为0,则用1填充numpy矩阵的特定列

来自分类Dev

Foreach如果所有字段均为“ 0”,则返回一个视图

来自分类Dev

从所有值均为0的SQL输出中删除列

来自分类Dev

所有规格均为“ 0”时的默认WAV描述

来自分类Dev

awk:如何过滤出所有条目(16列)均为0的行

来自分类Dev

数据框替换 1 和 0 的所有 True 和 False 值

来自分类Dev

Pandas DataFrame用0以外的所有值替换1

来自分类Dev

Power Query自定义函数,不作任何增量,所有值均为1/0:为什么?

来自分类Dev

YouTube javascript没有返回正确的错误代码(所有错误均为0)

来自分类Dev

如何基于逻辑创建布尔序列:(0后跟1为True。0后面为1的True为True。所有其他均为False)

来自分类Dev

SAS:如果值是99,98或0,则替换所有变量中的值

来自分类Dev

当所有数据均为NA时,删除图例条目和构面

来自分类Dev

使用DT :: datatable隐藏所有值均为0的列

来自分类Dev

YouTube JavaScript无法返回正确的错误代码(所有错误均为0)

来自分类Dev

如何检查字典的所有值是否均为0

来自分类Dev

堆叠的条形图显示所有值均为0高图时悬挂的零

来自分类Dev

使用DT :: datatable隐藏所有值均为0的列

来自分类Dev

删除所有行AND标头均为na的数据框列

来自分类Dev

所有行都期望第0行

来自分类Dev

用R中的data.table中的0替换所有NA

来自分类Dev

在完整的DT(Python数据表)中将所有“ NA”替换为0

来自分类Dev

在 r 中的一列列表中的所有列表中将 numeric(0) 替换为 NA

来自分类Dev

如果 r 中的所有值都是 NA 或 0,则删除列

来自分类Dev

获取所有数组的排列[1,1,1,1,1,0,0,0,0]

来自分类Dev

确保数组的所有值都编码为1和-1,而不是1和0

来自分类Dev

将所有列除以一,一行一行,打印NA,除以0

来自分类Dev

如何删除所有列均为零的行

Related 相关文章

  1. 1

    如果R的所有值均为0,则填充0

  2. 2

    删除pandas数据框中所有均为0或NA的所有行

  3. 3

    如果所有列均为0,则用1填充numpy矩阵的特定列

  4. 4

    Foreach如果所有字段均为“ 0”,则返回一个视图

  5. 5

    从所有值均为0的SQL输出中删除列

  6. 6

    所有规格均为“ 0”时的默认WAV描述

  7. 7

    awk:如何过滤出所有条目(16列)均为0的行

  8. 8

    数据框替换 1 和 0 的所有 True 和 False 值

  9. 9

    Pandas DataFrame用0以外的所有值替换1

  10. 10

    Power Query自定义函数,不作任何增量,所有值均为1/0:为什么?

  11. 11

    YouTube javascript没有返回正确的错误代码(所有错误均为0)

  12. 12

    如何基于逻辑创建布尔序列:(0后跟1为True。0后面为1的True为True。所有其他均为False)

  13. 13

    SAS:如果值是99,98或0,则替换所有变量中的值

  14. 14

    当所有数据均为NA时,删除图例条目和构面

  15. 15

    使用DT :: datatable隐藏所有值均为0的列

  16. 16

    YouTube JavaScript无法返回正确的错误代码(所有错误均为0)

  17. 17

    如何检查字典的所有值是否均为0

  18. 18

    堆叠的条形图显示所有值均为0高图时悬挂的零

  19. 19

    使用DT :: datatable隐藏所有值均为0的列

  20. 20

    删除所有行AND标头均为na的数据框列

  21. 21

    所有行都期望第0行

  22. 22

    用R中的data.table中的0替换所有NA

  23. 23

    在完整的DT(Python数据表)中将所有“ NA”替换为0

  24. 24

    在 r 中的一列列表中的所有列表中将 numeric(0) 替换为 NA

  25. 25

    如果 r 中的所有值都是 NA 或 0,则删除列

  26. 26

    获取所有数组的排列[1,1,1,1,1,0,0,0,0]

  27. 27

    确保数组的所有值都编码为1和-1,而不是1和0

  28. 28

    将所有列除以一,一行一行,打印NA,除以0

  29. 29

    如何删除所有列均为零的行

热门标签

归档