Cơ bản về chuyển đổi kiểu
Thuộc phần Kiến thức nền tảng trong hành trình R của Coddy. Bài học 30 trên 78.
Như đã đề cập trong bài học trước, readline() luôn trả về một chuỗi ký tự. Nếu người dùng nhập "25", bạn nhận được văn bản "25", chứ không phải số 25. Điều này quan trọng vì bạn không thể tính toán với văn bản.
Để chuyển một chuỗi ký tự thành số, hãy dùng as.numeric():
input <- "42"
number <- as.numeric(input)
cat(number + 8, "\n") # Đầu ra: 50Điều này rất cần thiết khi làm việc với dữ liệu đầu vào của người dùng. Đây là mẫu phổ biến bạn sẽ dùng:
age_text <- readline()
age <- as.numeric(age_text)
cat("In 10 years, you will be", age + 10, "\n")Bạn cũng có thể chuyển đổi theo chiều ngược lại bằng cách dùng as.character():
number <- 100
text <- as.character(number)
cat("The value is:", text, "\n")Chuyển đổi số thành ký tự rất hữu ích khi bạn cần kết hợp chúng với văn bản khác hoặc khi một hàm yêu cầu đầu vào là ký tự. Các hàm chuyển đổi này giúp bạn chuyển đổi giữa các kiểu dữ liệu khi chương trình cần.
Thử thách
DễĐọc hai giá trị số làm đầu vào, thực hiện phép tính và hiển thị kết quả kèm nhãn.
Bạn sẽ nhận hai đầu vào:
- Một mức giá (dưới dạng chuỗi)
- Một số lượng (dưới dạng chuỗi)
Dùng as.numeric() để chuyển cả hai đầu vào thành giá trị số, sau đó tính tổng chi phí bằng cách nhân mức giá với số lượng.
Hiển thị đầu ra theo định dạng sau:
Total: [result]Dùng cat() để xuất kết quả và thêm ký tự xuống dòng \n ở cuối.
Ví dụ: nếu đầu vào là 15.50 và 4, đầu ra sẽ là:
Total: 62Tự làm thử
# Đọc đầu vào
con <- file("stdin", "r")
price_str <- suppressWarnings(readLines(con, n = 1))
quantity_str <- suppressWarnings(readLines(con, n = 1))
close(con)
# TODO: Viết code bên dưới
# 1. Dùng as.numeric() để chuyển price_str và quantity_str thành giá trị số
# 2. Tính tổng chi phí (price * quantity)
# 3. Dùng cat() để hiển thị kết quả theo định dạng "Total: [result]\n"Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Kiến thức nền tảng
4Toán tử phần 2
Toán tử logic (AND, OR)Toán tử logic phần 2 (NOT)Ôn tập: logic đơn giảnLogic vector hóa phần 1Logic vector hóa phần 22Biến và kiểu dữ liệu
Kiểu dữ liệu sốKiểu dữ liệu số nguyênKiểu dữ liệu ký tựKiểu dữ liệu logicKiểm tra kiểu dữ liệuQuy tắc đặt tênGiá trị thiếu: NATóm tắt: tạo biến8Vòng lặp
Vòng lặp forVòng lặp whileBreakNext (continue)Ôn tập: giai thừaTạo dãy (seq, :)Vòng lặp lồng nhauÔn tập: đầu vào động3Toán tử phần 1
Toán tử số họcPhép chia lấy phần nguyên và phép moduloToán tử gánÔn tập: phép tính đơn giảnToán tử so sánh6Nhập xuất cơ bản
In đầu raDùng cat để in đầu raĐầu ra với biếnĐọc đầu vào bằng readline()Cơ bản về chuyển đổi kiểuÔn tập: máy tính tuổiÔn tập: đúng hay sai9Hàm
Khai báo hàmĐối số hàmGiá trị trả vềÔn tập: hàm SigmaÔn tập: hàm xác thựcGiá trị tham số mặc địnhTự luyện tập: Trình biên dịch R online