将行转换为具有相同列 1 值的列

将行转换为具有相同列 1 值的列

我有逗号分隔的文件:

ID,Disease,Status
Sample1,Disease1,High
Sample1,Disease2,Low
Sample1,Disease3,Medium
Sample2,Disease1,Low
Sample2,Disease2,Medium
Sample2,Disease3,Low

第一个字段是 ID 号,第二个字段是疾病名称,第三列是个人患该疾病的风险状态。我需要将所有疾病放在行中,将 ID 放在列中。每个 ID 应分配一行,并按列提及所有疾病风险状态。所以,输出应该是:

预期输出文件:

ID,Disease1,Disease2,Disease3
Sample1,High,Low,Medium
Sample2,Low,Medium,Low

答案1

apt install rs
echo -e "1,2\n3,4" | rs -c',' -C',' -T
1,3,
2,4,

为每种语言转置数据的方法有很多种,甚至还有一些专用工具;

https://stackoverflow.com/questions/1729824/an-efficient-way-to-transpose-a-file-in-bash

相关内容