我想将文本文件中的所有值转换为对应的log2值。我有一个巨大的文本文件,有趣的是避免R. 不过,下面的R代码举例说明了我想在bash中以更有效的方式实现的内容。
tab2
我的预期输出:
df <- 'sam1 sam2 sam3
2000 3000 4000
2000 1500 1200
2000 7000 6000'
df <- read.table(text=df, header=T)
dflog <- log(df)
我将非常感谢您在bash中执行任何帮助。
答案 0 :(得分:3)
awk
救援!
$ awk 'NR>1{for(i=1;i<=NF;i++) $i=log($i)}1' sams
sam1 sam2 sam3
7.6009 8.00637 8.29405
7.6009 7.31322 7.09008
7.6009 8.85367 8.69951
这是快速解决方案,对于额外的小数点,您可以使用printf
格式化输出,但我不确定是否需要。