作者k97231 (AL)
看板Linux
標題[問題] 資料的截取與邏輯判斷
時間Tue Jun 26 21:26:50 2018
我現在正在處理一些有關於生物資訊的資料
基本上的資料格式長這樣
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
→ Kouni: 看需求好像是針對行去做判斷, awk 應該可以做到. 類似這樣: 06/26 22:12
→ Kouni: awk '{if ($2 == $3){print $0}}' 06/26 22:13
→ Kouni: 可以判斷兩值關係, 但如果要弄成較友善的資料格式還是建議 06/26 22:14
→ Kouni: 使用其他程式語言會比較快XD 06/26 22:15
→ kenduest: 這個用 python 搭配 pandas 處理會很快,學點其他語言 06/26 22:26
→ k97231: 不過現在我還只是linux新手 其他的程式語言只有R 06/27 10:31
推 a1u1usul3: linux的幾個程式只是堪用,不是很好用。字串處理還是用 06/27 11:00
→ a1u1usul3: 別的語言做會方便、好做很多,也比較查得到資料 06/27 11:00
→ k97231: 剛剛試用了一下pandas 可以依據欄位名擷取資料 06/27 17:39
→ k97231: 但要如何邏輯判斷並令存檔案就是另一個問題 06/28 11:03
→ kenduest: 請看官方的文件,data frame 是很單純事情 06/28 11:35