피벗 테이블을 생성하는 방법은 무엇입니까?

피벗 테이블을 생성하는 방법은 무엇입니까?

다음과 같은 파일이 있습니다.

latitude Chr01 0.85
latitude Chr05 0.25
latitude Chr11 0.07
latitude Chr13_a 0.26
latitude Chr13_b 0.00
latitude Chr14_a 0.00
latitude Chr14_b 1
latitude Chr15 1
latitude Chr16_a 0.01
latitude Chr16_b 1
latitude Chr17 0.62
MCMT Chr01 1
MCMT Chr05 0.30
MCMT Chr11 0.018
MCMT Chr13_a 0.34
MCMT Chr13_b 0.00
MCMT Chr14_a 0.00
MCMT Chr14_b 1
MCMT Chr15 1
MCMT Chr16_a 0.00
MCMT Chr16_b 1
MCMT Chr17 0.18
tD Chr01 0.09
tD Chr05 0.00
tD Chr11 0.02
tD Chr13_a 0.04
tD Chr13_b 2.88
tD Chr14_a 5.25
tD Chr14_b 1
tD Chr15 1
tD Chr16_a 0.00
tD Chr16_b 1
tD Chr17 0.00

내 파일을 이 형식으로 변환하고 싶습니다.

env     chr01   chr05   chr11   chr13_a chr13_b chr14_a chr14_b chr15   chr16_a chr16_b chr17
latitude        0.85    0.25    0.07    0.26    0       0       1       1       0.01    1       0.62
MCMT    1       0.3     0       0.34    0       0       1       1       0       1       0.18
TD      0.09    0       0.02    0.04    2.88    5.25    1       1       0       1       0

어떻게 해야 하나요?

답변1

이 목적을 위해 특별히 생물정보학 도구가 있을 수 있지만 그렇지 않은 경우에는 다음을 사용할 수 있습니다.GNU 데이터 혼합

$ datamash -s crosstab 1,2 unique 3 < file
        Chr01   Chr05   Chr11   Chr13_a Chr13_b Chr14_a Chr14_b Chr15   Chr16_a Chr16_b Chr17
MCMT    1       0.30    0.018   0.34    0.00    0.00    1       1       0.00    1       0.18
latitude        0.85    0.25    0.07    0.26    0.00    0.00    1       1       0.01    1       0.62
tD      0.09    0.00    0.02    0.04    2.88    5.25    1       1       0.00    1       0.00

출력 행의 순서가 중요한 경우 다음을 통해 결과를 파이프하십시오.sort

그건 그렇고, 이것은 실제로 전치가 아니라 크로스탭(피벗 테이블이라고도 함)입니다.

답변2

밀러(http://johnkerl.org/miller/doc)

mlr --inidx --ifs " " --opprint rename 1,env,2,key,3,value then  reshape -s key,value  input.txt

당신을 위한

env      Chr01 Chr05 Chr11 Chr13_a Chr13_b Chr14_a Chr14_b Chr15 Chr16_a Chr16_b Chr17
latitude 0.85  0.25  0.07  0.26    0.00    0.00    1       1     0.01    1       0.62
MCMT     1     0.30  0.018 0.34    0.00    0.00    1       1     0.00    1       0.18
tD       0.09  0.00  0.02  0.04    2.88    5.25    1       1     0.00    1       0.00

관련 정보