사용자 입력 받기
Coddy R 여정의 기초 섹션에 포함된 레슨. 78개 중 34번째.
챌린지
쉬움이전 레슨에서는 Bill Split Calculator의 환영 메시지를 만들었습니다. 이제 청구서 계산을 위한 사용자 입력을 받는 기능을 추가하세요.
기존 환영 메시지 다음에 사용자로부터 세 가지 입력을 읽으세요:
- 청구서 총액
- 팁 비율 (정수로 입력합니다. 예: 15%는
15) - 청구서를 나눌 사람 수
이 플랫폼과 같이 비대화형으로 실행되는 R 스크립트에서는 표준 입력 스트림에서 입력을 읽습니다. 이를 위해 먼저 file()을 사용하여 stdin에 대한 연결을 열고, 그런 다음 readLines()로 각 줄을 읽은 뒤, 작업이 끝나면 연결을 닫으세요:
con <- file("stdin", "r")
bill <- as.numeric(suppressWarnings(readLines(con, n = 1)))
tip_percent <- as.numeric(suppressWarnings(readLines(con, n = 1)))
people <- as.numeric(suppressWarnings(readLines(con, n = 1)))
close(con)각 부분의 역할은 다음과 같습니다:
file("stdin", "r"): 표준 입력 스트림을 읽기 위해 열고con에 저장합니다readLines(con, n = 1): 해당 연결에서 정확히 한 줄을 읽습니다. 참고:readLines()는readline()과 다릅니다.readLines()는 파일 연결(stdin포함)과 함께 작동하며n =을 사용하여 한 번에 여러 줄을 읽을 수 있지만,readline()은 R 콘솔에서 대화형으로 사용할 때만 작동합니다suppressWarnings(...): 이러한 방식으로stdin에서 읽을 때 나타나는 무해한 경고를 표시하지 않습니다. R이 스크립트에서stdin을 읽을 때 모든 것이 정상적으로 작동하더라도 "incomplete final line"과 같은 경고가 가끔 발생합니다. 호출을suppressWarnings()로 감싸면 이러한 메시지를 숨겨 출력이 지저분해지는 것을 방지할 수 있습니다. 읽어 들이는 값에는 영향을 주지 않습니다as.numeric(...): 텍스트 입력을 숫자로 변환합니다close(con): 모든 입력을 읽은 후 연결을 닫습니다
세 값을 bill, tip_percent, people이라는 이름의 변수에 저장하세요.
입력을 읽은 후 다음 형식으로 입력된 내용을 보여 주는 확인 메시지를 표시하세요:
Bill: $[bill]
Tip: [tip_percent]%
People: [people]모든 출력에 cat()을 사용하고, 필요한 곳에 줄 바꿈 문자 \n을 포함하세요. 원치 않는 공백을 방지하려면 각 cat() 호출에서 sep = ""을 사용하세요.
기본적으로 cat()은 출력하는 각 항목 사이에 공백을 삽입합니다. 예를 들면 다음과 같습니다:
cat("Bill: $", 120, "\n") # prints: Bill: $ 120 $와 120 사이, 그리고 줄 바꿈 앞에 원치 않는 공백이 생기는 것을 확인하세요. sep = ""을 추가하면 cat()이 대신 빈 문자열을 구분자로 사용하므로 항목 사이에 아무것도 삽입되지 않습니다:
cat("Bill: $", 120, "\n", sep = "") # prints: Bill: $120이 패턴을 세 확인 메시지 줄 모두에 적용하세요:
cat("Bill: $", bill, "\n", sep = "")
cat("Tip: ", tip_percent, "%\n", sep = "")
cat("People: ", people, "\n", sep = "")예를 들어 입력이 120, 18, 4라면 전체 출력은 다음과 같아야 합니다:
Welcome to the Bill Split Calculator!
Let's split your bill fairly.
Bill: $120
Tip: 18%
People: 4직접 해보기
# TODO: Write your code below
# Use cat() to display the welcome message
# Remember to use \n for new lines
cat("Welcome to the Bill Split Calculator!\nLet's split your bill fairly.\n")기초의 모든 레슨
직접 연습해 보세요: 온라인 R 컴파일러