내가 ..... 내가 아래에있는 내 샘플 CSV 파일의 일부를 표시하고 을 모든 파일을 병합 할 여러 CSV 파일을을 사용하여 특정 조건에 의해 여러 CSV 파일을 병합 할은 내가 ... 펄
M1DL1_Interpro_sum.csv
IPR017690,Outer membrane, omp85 target,821
IPR014729,Rossmann,327
IPR013785,Aldolase,304
IPR015421,Pyridoxal,224
IPR003594,ATPase,179
IPR000531,TonB receptor,150
IPR018248,EF-hand,10
M1DL2_Interpro_sum.csv
IPR017690,Outer membrane, omp85 target,728
IPR013785,Aldolase,300
IPR014729,Rossmann,261
IPR015421,Pyridoxal,189
IPR011991,Winged,113
IPR000873,AMP-dependent synthetase/ligase,111
M1DL3_Interpro_sum.csv
,536 지금 91,363,210IPR017690,Outer membrane,905
IPR013785,Aldolase,367
IPR014729,Rossmann,338
IPR015421,Pyridoxal,271
IPR003594,ATPase,158
IPR018248,EF-hand,3
내가 다음 코드
@ARGV = <merge_csvfiles/*.csv>;
print @ARGV[0],"\n";
open(PAGE,">outfile.csv") || die"Can't open outfile.csv\n";
while($i<scalar(@ARGV))
{
open(FILE,@ARGV[$i]) || die"Can't open [email protected][$i]...\n";
$data.=join("",<FILE>);
close FILE;
print"file completed...",$i+1,"\n";
$i++;
}
@data=split("\n",$data);
@[email protected];
print scalar(@data);
for($i=0;$i<scalar(@data);$i++)
{
@id1=split(",",@data[$i]);
[email protected][0];
@data[$j]=~s/\n//;
if(@data[$i] ne "")
{
print PAGE "\[email protected][$i],";
for($j=$i+1;$j<scalar(@data2);$j++)
{
@id2=split(",",@data2[$j]);
[email protected][0];
if($id_1 eq $id_2)
{
@data[$j]=~s/\n//;
print PAGE "@data2[$j],";
@data2[$j]="";
@data[$j]="";
print "match found at ",$i+1," and ",$j+1,"\n";
}
}
}
print $i+1,"\n";
}
merge_csvfiles에게 시도이 파일을 병합 할 수는 위의 코드의
출력
IPR017690,Outer membrane,821,IPR017690,Outer membrane ,728,IPR017690,Outer membrane,905
IPR014729,Rossmann,327,IPR014729,Rossmann,261,IPR014729,Rossmann,338
IPR013785,Aldolase,304,IPR013785,Aldolase,300,IPR013785,Aldolase,367
IPR015421,Pyridoxal,224,IPR015421,Pyridoxal,189,IPR015421,Pyridoxal,271
IPR003594,ATPase,179,IPR003594,ATPase,158
IPR000531,TonB receptor,150
IPR018248,EF-hand,10,IPR018248,EF-hand,3
IPR011991,Winged,113
IPR000873,AMP-dependent synthetase/ligase
하지만 난 모든 파일이 들어있는 폴더입니다 다음 형식으로 출력하고 싶습니다 ....
IPR017690,Outer membrane,821,IPR017690,Outer membrane ,728,IPR017690,Outer membrane,905
IPR014729,Rossmann,327,IPR014729,Rossmann,261,IPR014729,Rossmann,338
IPR013785,Aldolase,304,IPR013785,Aldolase,300,IPR013785,Aldolase,367
IPR015421,Pyridoxal,224,IPR015421,Pyridoxal,189,IPR015421,Pyridoxal,271
IPR003594,ATPase,179,0,0,0,IPR003594,ATPase,158
IPR000531,TonB receptor,150,0,0,0,0,0,0
IPR018248,EF-hand,10,0,0,0,IPR018248,EF-hand,3
0,0,0,IPR011991,Winged,113,0,0,0
0,0,0,IPR000873,AMP-dependent synthetase/ligase,111,0,0,0
아무에게도 어떻게 생각합니까? 도움을 주셔서 감사합니다
"병합"의 의미를 설명 할 수 있습니까? –
Miguel Prz 나는 질문을 편집했다 ... 나는 지금 내가 병합에 의해 의미했던 것이 무엇인지 알기를 바란다. – user2181315