Các phép toán trên vectơ
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 59 trên 78.
Một trong những tính năng mạnh mẽ nhất của R là khả năng thực hiện các phép toán trên toàn bộ vector cùng lúc mà không cần lặp qua từng phần tử. Nhờ vậy, code của bạn gọn gàng và hiệu quả hơn.
Khi bạn áp dụng toán tử số học cho một vector, R thực hiện phép toán trên mọi phần tử:
prices <- c(10, 25, 15, 30)
discounted <- prices * 0.9
print(discounted)Đầu ra:
[1] 9.0 22.5 13.5 27.0Bạn cũng có thể thực hiện phép tính giữa hai vector có cùng độ dài. R ghép các phần tử tương ứng với nhau:
quantities <- c(2, 1, 4, 3)
prices <- c(10, 25, 15, 30)
totals <- quantities * prices
print(totals)Đầu ra:
[1] 20 25 60 90R cung cấp các hàm tích hợp hữu ích để tính toán phổ biến trên mảng, như sum(), mean(), min() và max():
scores <- c(85, 92, 78, 95, 88)
print(sum(scores))
print(mean(scores))
print(min(scores))
print(max(scores))Đầu ra:
[1] 438
[1] 87.6
[1] 78
[1] 95Thử thách
DễBạn được cung cấp các vector sau:
hours_worked <- c(8, 7, 9, 6, 8)
hourly_rate <- c(15, 20, 18, 22, 17)Thực hiện các phép tính sau và in ra từng kết quả:
- Tính thu nhập mỗi ngày bằng cách nhân
hours_workedvớihourly_ratetheo từng phần tử. In ra vector này. - Cộng thêm 10% tiền thưởng vào thu nhập mỗi ngày (nhân với
1.1). In ra vector thu nhập đã cập nhật. - In ra tổng thu nhập trong tuần bằng
sum() - In ra thu nhập trung bình mỗi ngày bằng
mean() - In ra mức thu nhập cao nhất trong một ngày bằng
max() - In ra mức thu nhập thấp nhất trong một ngày bằng
min()
Kết quả của bạn sẽ là:
[1] 120 140 162 132 136
[1] 132.0 154.0 178.2 145.2 149.6
[1] 759
[1] 151.8
[1] 178.2
[1] 132Tự làm thử
# Các vectơ đã cho
hours_worked <- c(8, 7, 9, 6, 8)
hourly_rate <- c(15, 20, 18, 22, 17)
# TODO: Viết code của bạn bên dưới
# 1. Tính thu nhập hằng ngày (nhân theo từng phần tử)
# 2. Cộng thêm 10% tiền thưởng vào thu nhập hằng ngày
# 3. In ra tổng thu nhập trong tuần bằng sum()
# 4. In ra thu nhập trung bình hằng ngày bằng mean()
# 5. In ra thu nhập cao nhất trong một ngày bằng max()
# 6. In ra thu nhập thấp nhất trong một ngày bằng min()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 động11Vectơ
Tạo vectơ bằng c()Truy cập phần tử trong vectơChỉnh sửa vectơCác phép toán trên vectơÔn tập: vectơ giáÔn tập: vectơ đảo ngượcVectơ có tên3Toá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