Video: Bài 05: Biên Tập Dữ Liệu Dạng Véctơ trong R - TLU Maths 2025
Khi sử dụng R, đôi khi bạn cần chức năng của bạn để làm điều gì đó nếu điều kiện là đúng và cái gì khác nếu nó là bạn có thể làm điều này bằng hai câu lệnh if, nhưng có một cách dễ dàng hơn trong câu lệnh R: a if … else. Câu lệnh if … else chứa các phần tử giống như câu lệnh if (xem phần trước), và một số khác:
-
Từ khoá khác, được đặt sau khối mã đầu tiên
-
Một khối thứ hai của mã, nằm trong dấu ngoặc nhọn, phải được thực hiện khi và chỉ khi kết quả của điều kiện trong báo cáo if () là FALSE
Ở một số nước, số thuế giá trị gia tăng (VAT) phải trả phụ thuộc vào việc khách hàng là một tổ chức công cộng hay tư nhân. Hãy tưởng tượng rằng các tổ chức công cộng phải trả tiền chỉ có 6 phần trăm thuế GTGT và các tổ chức tư nhân phải nộp thuế VAT 12 phần trăm. Bạn có thể thêm một đối số bổ sung cho công khai giáCalculator () func và áp dụng như sau để bổ sung đúng số thuế GTGT:
nếu (giờ> 100) net. giá <- net. giá * 0. 9 nếu (công cộng) {tot. giá <- net. giá * 1. 06} khác {tot. giá <- net. giá * 1.12} round (tot. price)}
Nếu bạn gửi mã này đến bàn điều khiển, bạn có thể kiểm tra chức năng. Ví dụ: nếu bạn làm việc 25 giờ, mã sau đây cung cấp cho bạn số tiền khác nhau mà bạn tính phí cho các tổ chức công và tư nhân tương ứng: >> priceCalculator (25, public = TRUE) [1] 1060> priceCalculator (25, public = FALSE) [1] 1120
Điều này hoạt động tốt, nhưng nó hoạt động như thế nào?
Câu lệnh if đòi hỏi một giá trị logic giữa các dấu ngoặc đơn. Bất kỳ biểu thức nào bạn đặt giữa các dấu ngoặc đơn được đánh giá trước khi nó được truyền vào câu lệnh if. Vì vậy, nếu bạn làm việc trực tiếp với giá trị logic, bạn không phải chỉ định một biểu thức nào cả. Sử dụng, ví dụ, nếu (public == TRUE) là dư thừa.
if (public) tot. giá <- net. giá * 1. 06 khác tot. giá <- net. giá * 1. 12
Đưa bản tuyên bố khác vào cuối một dòng chứ không phải đầu của câu tiếp theo là một ý tưởng hay.
và bạn lấy toàn bộ tệp tin một lần cho R. Nhưng bạn có thể làm cho ngắn hơn. Câu lệnh if hoạt động giống như một hàm và, do đó, nó cũng trả về một giá trị. Kết quả là, bạn có thể gán giá trị đó cho một đối tượng hoặc sử dụng nó trong tính toán. Vì vậy, thay vì tính toán lại lưới. giá cả và gán kết quả cho tot. giá trong các khối mã, bạn có thể sử dụng câu lệnh if … else như sau:
tot. giá <- net. giá * nếu (công cộng) 1. 06 khác 1. 12
R sẽ đánh giá đầu tiên nếu câu khác …, và nhân kết quả bằng net. giá bán. Kết quả của việc này sau đó được gán cho tot. giá bán. Điều này khác không phải là một iota từ kết quả của năm dòng mã mà chúng tôi sử dụng cho bản gốc nếu … else tuyên bố.