2016-07-05 4 views
0

sink()을 사용하여 .txt 파일에 내 스크립트의 출력을 쓰지 만 어떤 이유에서든 프롬프트가 txt 파일에도 기록되었습니다. 나는 며칠 전에 그 문제를 해결할 수있는 질문을했지만 여기에서는 다른 각도에서 접근하고있다. 내가 txt 파일을 열고 그 특정을 제거 할 수있는 방법이 있다면 사라가 >로 시작하는 것들, 내가 생각하는 원하는 라인 이후텍스트 파일에서 특정 줄 제거 R

> geno(hdr) 
DataFrame with 12 rows and 3 columns 
      Number  Type       Description 
     <character> <character>       <character> 
GT    1  String       Genotype 
GQ    1  Integer     Genotype Quality 
DP    1  Integer       Read Depth 
HDP    2  Integer    Haplotype Read Depth 
HQ    2  Integer     Haplotype Quality 
...   ...   ...         ... 
mRNA    .  String      Overlaping mRNA 
rmsk    .  String     Overlaping Repeats 
segDup   .  String Overlaping segmentation duplication 
rCov    1  Float     relative Coverage 
cPd    1  String    called Ploidy(level) 

> sink() 

: 여기 내 스크립트에 의해 생성당한 txt 파일입니다 윤곽. 이 경우 > geno(hdr)> sink() 줄이 제거됩니다. R에서 정규 표현식이 좋지 않아서 이것이 어떻게 작동하는지 모른다. 어떤 도움을 주셔서 감사합니다. 감사.

+0

어쩌면'capture.output을()'대신 일 것이다? – cory

+0

나는 capture.output()도 시도했다. 불운. 나는 정말로이 문제가 무엇인지 알지 못한다. 그래서 나는 내 머리를 두드림 대신에이 길로 가기로 결정했다. –

+0

이전의 [질문] (http://stackoverflow.com/questions/38132675/)에서 논평대로 redirect-stdout-to-a-txt-file-in-the-prompt-without-the-prompt)를 사용하면 나에게'sink()'를 사용할 때 프롬프트가 표시되지 않습니다. CPU 환경은 무엇입니까? R 버전/OS/R Studio 또는 RScript 또는 RCmd 코드 실행? – Parfait

답변

0

시도해 볼 수 있습니다. 라인으로 파일 라인을 읽고 라인이 시작하면하지 않을 경우, > 확인, 새 파일을 추가 :

con <- file('test.txt', open = 'r') 
while(TRUE) { 
    line <- readLines(con, n = 1) 
    if(length(line) == 0) break 
    else if(!startsWith(line, ">")){ 
     write(line, file = "newTest.txt", append = TRUE) 
    } 
} 
+1

예! 완벽하게 작동합니다. –

관련 문제