R에서 print ()로 줄 바꿈 인쇄


111

R에서 여러 줄 메시지를 인쇄하려고합니다. 예를 들어,

print("File not supplied.\nUsage: ./program F=filename",quote=0)

나는 출력을 얻는다

File not supplied.\nUsage: ./program F=filename

원하는 대신

File not supplied.
Usage: ./program F=filename

답변:


130

대안 cat()writeLines()다음과 같습니다.

> writeLines("File not supplied.\nUsage: ./program F=filename")
File not supplied.
Usage: ./program F=filename
>

장점은 메시지 뒤에 개행 문자를 얻기 위해 "\n"전달 된 문자열에 를 추가하는 것을 기억할 필요가 없다는 것 cat()입니다. 예를 들어 위와 동일한 cat()출력 을 비교하십시오 .

> cat("File not supplied.\nUsage: ./program F=filename")
File not supplied.
Usage: ./program F=filename>

> cat("File not supplied.\nUsage: ./program F=filename","\n")
File not supplied.
Usage: ./program F=filename
>

그 이유 print()는 당신이 원하는 것을하지 않는 이유 print()는 당신에게 R 레벨의 객체 버전 을 보여주기 때문입니다.이 경우에는 문자열입니다. 당신과 같은 다른 기능을 사용할 필요 cat()하고 writeLines()문자열을 표시합니다. 예를 들어 인쇄 된 숫자에서 정밀도가 줄어들 수 있고 인쇄 된 개체가 추가 정보로 증가 될 수 있기 때문에 "버전"이라고합니다.


둘 다 writelines'cat'이 변수에 쓰지 않는 것 같습니다. 여러 줄로 된 문자열 변수를 만들려고했습니다. stringvar <- writeLines("line1\nline2")할당하지 않습니다. stringvar 여전히 null을 반환합니다. 대안이 있습니까?
sjd

25

다음과 같이 할 수 있습니다.

cat("File not supplied.\nUsage: ./program F=filename\n")

공지 사항 catreturn의 값을 NULL.


3
그러나 후행 새 줄을 잊지 마십시오.
hadley

+1 @Shane 나는 이것이 도움이 된 다른 것을 위해 고양이 ( "\ n")가 필요했습니다! 감사합니다
Alos Alos 2011

7

writeLines를 사용하면를 사용하여 "\ n"개행 문자를 생략 할 수도 있습니다 c(). 에서와 같이 :

writeLines(c("File not supplied.","Usage: ./program F=filename",[additional text for third line]))

위의 [세 번째 줄에 대한 추가 텍스트]와 같이 고정 및 가변 입력이 결합 된 여러 줄 메시지를 작성하려는 경우 유용합니다.


-1

cat및 의 조합을 사용할 수도 있습니다.paste0

cat(paste0("File not supplied.\n", "Usage: ./program F=filename"))

출력물에 변수를 통합 할 때 이것이 더 유용하다는 것을 알았습니다. 예를 들면 :

file <- "myfile.txt"
cat(paste0("File not supplied.\n", "Usage: ./program F=", file))
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.