Menu
Coddy logo textTech

sprintf()로 서식 지정하기

Coddy R 여정의 논리와 흐름 섹션에 포함된 레슨. 64개 중 2번째.

sprintf()는 템플릿에서 문자열을 만듭니다. 각 % 자리 표시자는 다음 인수로 대체됩니다. 텍스트에는 %s, 정수에는 %d, 소수에는 %f를 사용합니다.

name <- "Ada"
age <- 36
print(sprintf("%s is %d years old", name, age))

출력:

[1] "Ada is 36 years old"

%d는 정수만 허용합니다. sprintf("%d", 2.5)는 오류와 함께 중단됩니다.

%와 f 사이의 정밀도는 소수점 이하 자릿수를 설정하므로, %.2f는 소수점 이하 두 자리로 반올림합니다:

total <- 3 * 4.5 * 1.2
print(sprintf("Total: %.2f", total))

출력:

[1] "Total: 16.20"

너비는 값을 해당 문자 수만큼 채웁니다: %5d는 왼쪽을 채우고, %-6s는 오른쪽을 채우며, %03d는 0으로 채웁니다. %%는 퍼센트 기호를 출력합니다.

print(sprintf("[%5d]", 42))
print(sprintf("[%-6s]", "tea"))
print(sprintf("%03d", 7))
print(sprintf("%d%%", 85))

출력:

[1] "[   42]"
[1] "[tea   ]"
[1] "007"
[1] "85%"

sprintf()는 벡터화되어 있습니다. 벡터 인수를 사용하면 요소마다 하나의 문자열을 반환합니다. sep = "\n"과 함께 사용하는 cat()은 각 문자열을 별도의 줄에 출력합니다.

items <- c("tea", "cake")
prices <- c(4, 12.5)
lines <- sprintf("%-5s %6.2f", items, prices)
cat(lines, sep = "\n")

출력:

tea     4.00
cake   12.50
challenge icon

챌린지

쉬움

receipt_line(item, qty, price)을 완성하세요. 항목, 수량 및 줄 합계(qty * price)를 tea x3 = 13.50 형식으로 반환하세요. 즉, 항목, 공백, 수량 앞의 x, 그다음 = 및 정확히 소수점 이하 두 자리로 표시된 합계입니다.

제공된 코드는 항목, 수량 및 가격을 (한 줄에 하나씩) 읽고 반환된 값을 출력합니다.

직접 해보기

receipt_line <- function(item, qty, price) {
  # 여기에 코드를 작성하세요
  ""
}

# 제공된 입력/출력 코드: 그대로 유지하세요
input <- suppressWarnings(readLines(file("stdin")))
cat(receipt_line(input[1], as.integer(input[2]), as.numeric(input[3])), sep = "\n")
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리와 흐름의 모든 레슨

직접 연습해 보세요: 온라인 R 컴파일러