더북(TheBook)

cat()

print( )나 sprintf( )는 결과를 출력한 뒤 개행이 일어난다. 반면 cat( )은 주어진 입력을 출력하고 행을 바꾸지 않는다는 특징이 있다. 또한, cat( )에는 여러 인자를 나열해 쓰면 해당 인자들이 계속 연결되어 출력된다는 특징이 있다. 따라서 프로그램 진행 상황을 보기 좋게 출력하는 데 종종 사용한다.

먼저 cat( )이 행을 바꾸지 않는다는 점을 다음 코드를 통해 살펴보자.

> print("hi")
[1] "hi"

> cat("hi")
hi>

보다시피 print( )가 수행되고 나면 행이 바뀌므로 R의 명령 프롬프트인 ‘>’가 [1] “hi”라는 결과의 다음 행에 보였다. 그러나 cat은 주어진 문자열을 그대로 출력하기만 한다. 그런 이유로 “hi”라는 문자열 바로 뒤에 프롬프트가 붙어서 나타나 ‘hi>’가 결과로 나왔다.

cat( )에서 개행을 하려면 개행을 뜻하는 문자열인 “\n”을 다음과 같이 직접 출력하면 된다.

> cat(1, 2, 3, 4, 5, "\n")
1 2 3 4 5
>

cat( )이 개행을 하지 않는다는 점을 이용하면 데이터 처리가 어떻게 수행 중인지를 다음과 같이 좀 더 보기 좋게 출력해줄 수 있다.

> sum_to_ten <- function() {
+   sum <- 0
+   cat("Adding ...")
+   for (i in 1:10) {
+     sum <- sum + i
+     cat(i, "...")
+   }
+   cat("Done!", "\n")
+   return(sum)
+ }

> sum_to_ten()
Adding ...1 ...2 ...3 ...4 ...5 ...6 ...7 ...8 ...9 ...10 ...Done!
[1] 55
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.