1. 程式人生 > >生信(五)awk求取某一列的平均值

生信(五)awk求取某一列的平均值

關鍵詞:awk

awk是生信人必須要掌握的命令列工具。為啥?因為它太強大了。我們舉一個例子來說明。

假設我們有一個1000萬行的檔案,大概長這樣: 在這裡插入圖片描述

怎麼求第四列的平均數呢

Python版本 我們可以用幾行Python程式碼解決,比如這樣: 在這裡插入圖片描述

其耗時: 在這裡插入圖片描述

R版本 用R來做計算也是很適合的,比如像這樣: 在這裡插入圖片描述

其耗時: 在這裡插入圖片描述

awk版本 awk用一行程式碼就可以解決問題,像這樣(注意耗時): 在這裡插入圖片描述

至此,我們可以看出,awk程式碼簡單,但是效能卻不差!在同樣的機器上處理同樣的檔案,awk的執行時間是Python的一半左右,是R的大概十分之一。可以說,awk已經非常快了

C版本 都說C快,讓我們看看到底有多快。程式碼如下: 在這裡插入圖片描述

在這裡插入圖片描述

其耗時: 在這裡插入圖片描述

可以看出,C的版本也僅比awk的稍快一點點。但是,C的程式碼複雜多了!由此,我們可以粗略比較出awk是一個非常完美的文字處理工具!

如果有任何問題,歡迎交流!

(公眾號:生信了) 在這裡插入圖片描述