2013-07-22 4 views
3

난의 sprintf 및 싱크를 사용하여 문자 나 수치의 일련의 쓰기 시도하고있다 : 위에서 예이다분리 [1] R의 싱크 sprintf를 출력

물론
sink("sample.txt", append=TRUE, split=TRUE) 
sprintf("Hello World") 

, I 돈 때문에 위의 데이터 프레임에서 수치 값을 가지고 있지만 sprintf를 사용해야합니다.

텍스트 파일 (의 Sample.txt)의 출력은 다음과 같습니다

[1] Hello World 

은 어떻게 [1]에서 줄을 제거합니까? [1]이 파일에 쓰지 않는 방법이 있습니까?

답변

5

두 가지 옵션 cat() 또는 writeLines()를 사용하여, 마음에 봄

> cat(sprintf("Hello World"), "\n") 
Hello World 
> writeLines(sprintf("Hello World")) 
Hello World 

당신이 가진 문제는 sprintf()이 문자 벡터를 반환하고 있다는 것입니다 그것 벡터와 같은 다른 문자 벡터 R 인쇄와 같은 당신 print 그 경우. 원하는 것은 문자 벡터의 첫 번째 요소 (이 경우에는 단 하나의 요소)에 포함 된 문자열입니다. 따라서 우리는 도구를 사용하여 문자 벡터를 인쇄하지 않는 문자열을 작성합니다. 이 두 당신이 유용하게 사용할 수있는 (cat() 단위) file 인수를 통해 파일이나 (writeLines() 단위) con 인수에 직접 쓸 수

참고.

+0

설명해 주셔서 감사합니다. 나는 cat()을 사용했다. – Sheila

+0

기본 설정에서 변경할 수 있습니까? (실제로'cat'을 사용하면 효과가 있지만 실제로 사용하지는 않습니까?) –

+0

@RScriv 클래스'c ("foo", "character")'를 가진 문자 벡터를 반환 한'sprintf()'('wrapSprintf()')에 래퍼를 작성한 후'print.foo)'메소드를 호출했다.이 메소드는'cat()'또는'writeLines()'를 호출했다. 이 두 가지를 사용하면'wrapSprintf ("뭐든간에") 할 수 있고 나머지는 S3 디스패치 및 자동 인쇄가 가능합니다. 이것은'print' 시스템을 약간 악용하는 것이지만, 도구를 사용하면 문자를 반환하는 것과 문자 벡터를 특정 방식으로 표시하는 또 다른 도구를 사용하는 것에 더 가깝습니다. –