Video: Thor's Stormbreaker DESTROYS ALL (Ultimate Test Video!) 2025
Trong một số trường hợp, bạn cần phải thực hiện nhiều lựa chọn trong R. Các câu lệnh if và if … else sẽ cho bạn hai lựa chọn chính xác, nhưng cuộc sống hiếm khi đơn giản như vậy. Hãy tưởng tượng bạn có một số khách hàng ở nước ngoài.
Giả sử rằng bất kỳ khách hàng ở nước ngoài nào không cần phải trả thuế VAT vì lợi ích của ví dụ. Bây giờ bạn đã có ba mức thuế VAT khác nhau: 12 phần trăm đối với khách hàng cá nhân, 6 phần trăm đối với khách hàng công cộng và không có khách hàng nước ngoài.
Cách trực quan nhất để giải quyết vấn đề này chỉ là để nối các lựa chọn. Nếu khách hàng đang sinh sống ở nước ngoài, không tính bất kỳ VAT nào. Nếu không, hãy kiểm tra xem khách hàng là công hay tư nhân và áp dụng mức thuế VAT có liên quan.
Nếu bạn xác định một khách hàng đối số cho chức năng của bạn có thể lấy các giá trị 'ở nước ngoài', 'công cộng' và 'tư nhân', bạn có thể mã thuật toán trước đây như sau:
if (client == 'private') {tot. giá <- net. giá * 1. 12 # 12% VAT} khác {if (client == 'public') {tot. giá <- net. giá * 1. 06 # 6% VAT} khác {tot. giá <- net. giá * 1 # 0% VAT}}
Với mã này, bạn gán tổ hợp thứ hai nếu … else trong câu lệnh if … else đầu tiên. Đó là hoàn toàn chấp nhận được và nó sẽ làm việc, nhưng hãy tưởng tượng những gì bạn sẽ phải làm gì nếu bạn có bốn hoặc nhiều khả năng hơn. Nêu một tuyên bố trong một tuyên bố trong một tuyên bố trong một tuyên bố nhanh chóng tạo ra một mớ hỗn độn rất lớn.
May mắn thay, R cho phép bạn viết tất cả các mã đó một cách rõ ràng hơn. Bạn có thể nối các câu lệnh if … else như sau:
if (client == 'private') {tot. giá <- net. giá cả * 1.12} khác nếu (khách hàng == 'công cộng') {tot. giá <- net. giá * 1. 06} khác {tot. giá <- net. price}
Trong ví dụ này, chuỗi làm cho một sự khác biệt của chỉ có hai niềng răng, nhưng khi bạn có nhiều khả năng hơn, nó làm cho mã dễ đọc. Lưu ý rằng bạn không phải kiểm tra xem khách hàng đối số có bằng 'ở nước ngoài' (mặc dù không phải là sai khi làm điều đó). Bạn chỉ cần giả định rằng nếu khách hàng không có bất kỳ hai giá trị khác, nó phải là 'ở nước ngoài'.
Chuỗi if … else báo cáo làm việc trên một giá trị tại một thời điểm. Bạn không thể sử dụng câu lệnh xâu chuỗi if … else theo cách vector hoá. Vì vậy, bạn có thể tổ chức nhiều câu lệnh ifelse, như sau:
VAT <- ifelse (client == 'private', 1. 12, ifelse (client == 'public', 1. 06, 1)) tot. giá <- net. giá * VAT
Đoạn mã này có thể trở nên khá khó hiểu nếu bạn có nhiều hơn 3 lựa chọn. Giải pháp cho việc này là chuyển đổi.