2017-11-15 4 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에서입니다 몇 가지 이유를 들어, 나는 그것이 input1.bed에 있어야 할 ROW1 말 input2.bed에서 2 행

이 내 시도하고있다 입니다 :

"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

당신은 다음과 같은 방식으로 하나의 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, 따옴표).