0Pricing
R Academy · 강의

sprintf()를 사용한 형식 지정 출력

sprintf 형식 문자열로 소수 자릿수, 패딩, 정렬을 제어합니다.

sprintf()를 사용한 형식 지정 출력은(는) CoddyKit의 무료 R Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 R Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. R Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

sprintf() 기초

sprintf()는 자리 표시자가 포함된 형식 문자열을 사용하여 문자열의 형식을 지정합니다. C의 printf와 정확히 같은 방식으로 작동합니다. 첫 번째 인수는 형식 템플릿이고, 이후 인수는 자리 표시자를 순서대로 채웁니다.

sprintf('There are %d items', 5)
sprintf('Hello, %s!', 'Alice')
sprintf('Price: %.2f', 9.999)

정수 및 문자열 자리 표시자

%d는 정수의 형식을 지정하고, %s는 문자열의 형식을 지정하며, %f는 부동 소수점 수의 형식을 지정합니다. 각 자리 표시자는 해당 인수로 순서대로 대체됩니다.

name <- 'Bob'
age  <- 34
score <- 88.5
sprintf('%s is %d years old with score %.1f', name, age, score)

소수 자릿수 제어하기

%.2f는 부동 소수점 수로 형식을 지정하되 소수점 이하를 정확히 2자리로 표시한다는 뜻입니다. .과 f 사이의 숫자가 정밀도를 제어합니다. 통화, 백분율 및 과학적 값에 적합합니다.

pi_val <- 3.14159265
sprintf('%.0f', pi_val)
sprintf('%.2f', pi_val)
sprintf('%.5f', pi_val)
sprintf('$%.2f', 1234.5)

필드 너비와 채우기

형식 지정 문자 앞의 숫자는 최소 필드 너비를 설정합니다. 값은 기본적으로 오른쪽에 맞춰지고 왼쪽은 공백으로 채워집니다. 일반 텍스트 보고서에서 열을 맞출 때 유용합니다.

items <- c('Pen', 'Notebook', 'Stapler')
prices <- c(1.5, 4.99, 7.25)
for (i in seq_along(items)) {
  cat(sprintf('%-10s $%6.2f\n', items[i], prices[i]))
}

- 플래그로 왼쪽 정렬하기

너비 숫자 앞에 -를 붙이면 필드 안의 텍스트가 왼쪽에 맞춰집니다. 고정 너비 텍스트 출력에서 열을 왼쪽 정렬하는 표준 방법입니다.

# Right-aligned (default)
sprintf('%10s', 'hi')
# Left-aligned
sprintf('%-10s', 'hi')
# Practical: side-by-side
cat(sprintf('%-8s %5d\n', 'Alice', 42))
cat(sprintf('%-8s %5d\n', 'Bob', 7))

%e와 %g를 사용한 과학적 표기법

%e는 과학적 표기법을 강제합니다(예: 1.23e+04). %g는 %f와 %e 중 더 짧은 형식을 자동으로 선택하므로, 값의 크기 범위가 매우 클 때 유용합니다.

x <- 0.000123456
y <- 123456789
sprintf('%e', x)
sprintf('%e', y)
sprintf('%g', x)
sprintf('%g', y)

0 플래그로 0 채우기

너비 앞에 0을 붙이면 공백 대신 앞쪽을 0으로 채워 숫자를 표시합니다. 0으로 채운 ID, 날짜 및 파일 번호 체계를 만들 때 흔히 사용합니다.

ids <- c(1, 12, 123, 1234)
sprintf('ID_%05d', ids)
# Date parts
sprintf('%04d-%02d-%02d', 2024, 5, 7)

백분율 형식 지정

비율을 백분율로 표시하려면 100을 곱하고 %.1f%%를 사용합니다. 이중 %%는 출력에 리터럴 퍼센트 기호를 삽입합니다(단일 %는 자리 표시자의 시작으로 해석됨).

pass_rate <- 0.8743
sprintf('Pass rate: %.1f%%', pass_rate * 100)
growth <- 0.0523
sprintf('Growth: +%.2f%%', growth * 100)

sprintf()는 벡터화되어 있습니다

sprintf()에 인수로 벡터를 전달하면 벡터를 자동으로 순회하면서 요소마다 형식이 지정된 문자열 하나를 반환합니다. 형식 문자열 자체는 재활용됩니다.

products <- c('Apple', 'Banana', 'Cherry')
prices   <- c(0.99, 0.59, 2.49)
sprintf('%-8s costs $%.2f', products, prices)

여러 자리 표시자와 여러 인수

각 자리 표시자는 인수를 하나씩 순서대로 사용합니다. 하나의 형식 문자열에서 %d, %f, %s를 자유롭게 조합할 수 있으며, 모든 벡터 인수는 가장 긴 길이에 맞춰 재활용됩니다.

months <- c('Jan', 'Feb', 'Mar')
revenue <- c(12500, 9800, 15300)
growth  <- c(0.05, -0.12, 0.18)
sprintf('%s: $%d (growth: %+.1f%%)',
        months, revenue, growth * 100)

sprintf()와 paste() — 각각 언제 사용할까

간단한 연결에는 paste()/paste0()를 사용하고, 소수 자릿수, 너비, 채우기와 같은 정밀한 수치 형식 지정이 필요할 때는 sprintf()를 사용합니다. sprintf()는 더 장황하지만 숫자 표시 방식을 완전히 제어할 수 있습니다.

val <- 1234567.891
# paste: no formatting control
paste('Total:', val)
# sprintf: formatted as currency
sprintf('Total: $%,.2f', val)
# With manual formatting
sprintf('Total: $%15.2f', val)

빠른 확인

sprintf()에서 출력에 리터럴 퍼센트 기호 %를 삽입하는 형식 코드는 무엇입니까?

sprintf() 핵심 내용

sprintf()의 핵심 내용:

  • %d 정수, %f 부동 소수점 수, %s 문자열, %e 과학적 표기법, %g 자동 선택
  • %.2f = 소수점 이하 2자리, %10.2f = 너비 10, 소수점 이하 2자리
  • %-10s = 너비 10인 필드에서 왼쪽 정렬, %05d = 5자리까지 0으로 채움
  • %% = 출력에서 리터럴 퍼센트 기호
  • sprintf()는 인수에 대해 벡터화되어 있습니다.
  • 수치 형식의 정밀도가 중요할 때는 paste()보다 sprintf()를 사용하는 것이 좋습니다.
x <- 0.87654
cat(sprintf('Default f  : %f\n', x))
cat(sprintf('2 decimals : %.2f\n', x))
cat(sprintf('Percentage : %.1f%%\n', x * 100))
cat(sprintf('Scientific : %e\n', x))
cat(sprintf('Auto       : %g\n', x))

자주 묻는 질문

“sprintf()를 사용한 형식 지정 출력” 강의는 무료인가요?

네 — “sprintf()를 사용한 형식 지정 출력” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 R Academy 강의 전체를 잠금 해제할 수 있습니다. R Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“sprintf()를 사용한 형식 지정 출력”에서 뭘 배우나요?

sprintf 형식 문자열로 소수 자릿수, 패딩, 정렬을 제어합니다. 브라우저에서 직접 실행하는 실습 코드로 R Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

R Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 R Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“sprintf()를 사용한 형식 지정 출력” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 R Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 R Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. paste()와 paste0()로 문자열 만들기
  2. sprintf()를 사용한 형식 지정 출력
  3. cat()과 print()로 출력 표시하기
  4. 문자열 패딩과 정렬
← R Academy(으)로 돌아가기