[問題] 資料的截取與邏輯判斷

看板Linux作者 (AL)時間7年前 (2018/06/26 21:26), 編輯推噓1(1010)
留言11則, 4人參與, 7年前最新討論串1/3 (看更多)
我現在正在處理一些有關於生物資訊的資料 基本上的資料格式長這樣 ID A_1 A_2 B_1 B_2 …… 1 0/0 0/0 2 0/0 ./. 3 ./. ./. 4. 0/0 0/1 5. 1/1 0/1 6. 0/1 0/1 …… 接著我想要做幾件事情 依據相同字母的樣本(像是A_1和A_2) 逐列統計四種欄位的數量 1. A_1和A_2相同 2. A_1和A_2都一樣是./. 3. A_1和A_2不一樣 4. 以及任一樣本含有./.的欄位數量 以上表為例 A_1和A_2相同的數量是3 (ID1, 3, 6) 兩行數值都是./.的數量是1 A_1和A_2不同的列有3 (ID2, 4, 5) 有任一行數值為./.的數量為2 (ID2, 3) 然後統計成四個數值這樣並輸出 不過有問題的部分是要如何擷取含有特定字串的兩欄 並逐行進行邏輯判斷? 我知道可以利用awk逐行進行擷取並用grep計算數量並輸出 (不過awk和grep的管線順序還沒參透) 但要如何依據相同字母擷取特定行就不清楚了 想問有甚麼指令可以針對首列帶有特定字串的行進行擷取? -- Sent from my Windows -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.230.107.147 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1530019613.A.AE6.html

06/26 22:12, 7年前 , 1F
看需求好像是針對行去做判斷, awk 應該可以做到. 類似這樣:
06/26 22:12, 1F

06/26 22:13, 7年前 , 2F
awk '{if ($2 == $3){print $0}}'
06/26 22:13, 2F

06/26 22:14, 7年前 , 3F
可以判斷兩值關係, 但如果要弄成較友善的資料格式還是建議
06/26 22:14, 3F

06/26 22:15, 7年前 , 4F
使用其他程式語言會比較快XD
06/26 22:15, 4F

06/26 22:26, 7年前 , 5F
這個用 python 搭配 pandas 處理會很快,學點其他語言
06/26 22:26, 5F

06/27 10:31, 7年前 , 6F
不過現在我還只是linux新手 其他的程式語言只有R
06/27 10:31, 6F

06/27 11:00, 7年前 , 7F
linux的幾個程式只是堪用,不是很好用。字串處理還是用
06/27 11:00, 7F

06/27 11:00, 7年前 , 8F
別的語言做會方便、好做很多,也比較查得到資料
06/27 11:00, 8F

06/27 17:39, 7年前 , 9F
剛剛試用了一下pandas 可以依據欄位名擷取資料
06/27 17:39, 9F

06/28 11:03, 7年前 , 10F
但要如何邏輯判斷並令存檔案就是另一個問題
06/28 11:03, 10F

06/28 11:35, 7年前 , 11F
請看官方的文件,data frame 是很單純事情
06/28 11:35, 11F
文章代碼(AID): #1RCZyThc (Linux)
文章代碼(AID): #1RCZyThc (Linux)