2017-11-15 22 views
0

だから私はinput.bedと呼ばれるベッドファイルからこのデータフレームを持っている:タブ区切りでファイルに書き込む方法は?

 V1  V2  V3 V4 
1 chr1 11323785 11617177 TF1 
2 chr1 12645605 13926923 TF2 
3 chr1 14750216 15119039 TF3 
4 chr1 18102157 19080189 TF1 
5 chr1 29491029 30934636 TF2 
6 chr1 33716472 35395979 TF4 
7 chr1 36712462 37685238 TF5 
8 chr1 37838094 38031209 TF3 

それは私が.bedファイル(.bedファイルがタブ区切りである)から読み出されたデータフレームです。私は各行を取って別のファイルに出力したい。何らかの理由で

for(i in 1:nrow(input.bed)) 
    { 
    file.create(paste("input",i,".bed",sep="")); 

    } 

for(i in 1:nrow(input.bed)) 
{ 
    write.table(unlist(input.bed[i,]),paste("input",i,".bed",sep=""),sep="\t"); 

} 

私のファイルの出力は、これはinput1.bedからである:これは私の試みとなっているinput2.bed

行2、私はそれがinput1.bedになりたいROW1を言います

"V1" "chr1" 
    "V2" "11323785" 
    "V3" "11617177" 
    "V4" "TF1" 

しかし、私は、出力は次のようにタブ区切りになりたい::、ある

chr1 11323785 11617177 TF1 

私が間違って何をしているのですか?

+0

'unlist()'を使用しないでください。 'quote = FALSE'と' row.names = FALSE'を 'write.table()'に追加してください – MrFlick

+0

ファイルを最初に作成する必要はありません - 'write.table'はそれらを作成します – anotherfred

答えて

0

あなたは、次のようにただ1 forループを使用することができます

for(i in 1:nrow(q)){ 
    write.table(x = q[i,], 
       file = paste('input',i,'.bed',sep=''), 
       row.names = F, 
       col.names = F, 
       quote = F, 
       sep = '\t') 
} 

は、基本的にはあなたのアプローチは正しかった、あなたはちょうどあなたがすべてのデフォルトの動作をしたくない機能に通知する必要があります(qは、データフレームです) (例:col/rownames、quotes)。

関連する問題