Trang Chủ Tài chính Cá nhân Làm thế nào để sử dụng Vectorization với If Statements in R - núm vú

Làm thế nào để sử dụng Vectorization với If Statements in R - núm vú

Mục lục:

Video: IAR Systems Advanced Debugging Breakpoints 2025

Video: IAR Systems Advanced Debugging Breakpoints 2025
Anonim

Vectorization là một trong những thuộc tính xác định của ngôn ngữ R. R sẽ không được R nếu nó không có một số phiên bản vectorized của câu lệnh if … else.

Vấn đề

Chức năng priceCalculator () vẫn không phải là rất tiết kiệm để sử dụng. Nếu bạn có 100 khách hàng, bạn sẽ phải tính giá cho từng khách hàng một cách riêng biệt. Kiểm tra xem điều gì sẽ xảy ra nếu bạn thêm, ví dụ, ba số giờ khác nhau làm đối số:

>> giáCalculator (c (25, 110)) [1] 1060 4664 Thông báo cảnh báo: Nếu (giờ> 100) net. giá 1 và chỉ phần tử đầu tiên sẽ được sử dụng
R không chỉ cảnh báo bạn rằng có điều gì đó đang xáo trộn, nhưng kết quả bạn nhận được là sai. Thay vì $ 4, 664, khách hàng thứ hai sẽ chỉ bị tính phí $ 4, 198:

priceCalculator (110) [1] 4198

Thông báo cảnh báo sẽ cho bạn một ý tưởng chính xác về những gì đã hapened. Câu lệnh if chỉ có thể xử lý với một giá trị duy nhất, nhưng giờ biểu thức> 100 trả về hai giá trị, như được biểu diễn bằng mã sau:

c (25, 110)> 100 [1] FALSE TRUE
Chọn dựa trên một vector logic trong R

Giải pháp bạn đang tìm kiếm là hàm ifelse (), là một cách vector hoá để chọn các giá trị từ hai vectơ. Chức năng đặc biệt này có ba đối số:

Một vector kiểm tra với các giá trị logic

  • Một vector với các giá trị cần trả về nếu giá trị tương ứng trong vector kiểm tra là TRUE

  • Một vector có giá trị cần trả về nếu giá trị tương ứng trong vector kiểm tra là FALSE
  • Cách hoạt động

Hãy xem ví dụ sau: >> ifelse (c <1 2 3 4) [1] 1 4

Chạy qua các bước mà hàm mất:

Biểu thức điều kiện c (1, 3) <2. 5 được đánh giá bằng một vector logic.

Giá trị đầu tiên của vector này là TRUE, bởi vì 1 nhỏ hơn 2. 5. Vì vậy, giá trị đầu tiên của kết quả là giá trị đầu tiên của đối số thứ hai, là 1.

  1. Giá trị tiếp theo là FALSE, bởi vì 3 lớn hơn 2. 5. Do đó, ifelse () lấy giá trị thứ hai của đối số thứ ba (là 4) là giá trị thứ hai của kết quả.

  2. Một vector với các giá trị đã chọn sẽ được trả về như là kết quả.

  3. Hãy thử

  4. Để xem cách hoạt động của nó trong ví dụ của hàm priceCalculator (), hãy thử chức năng này tại dòng lệnh trong bảng điều khiển. Giả sử bạn có hai khách hàng và bạn đã làm việc 25 và 110 giờ cho họ, tương ứng. Bạn có thể tính giá net với mã sau: >> my. giờ của tôi. giờ * 40 * ifelse (của tôi.giờ> 100, 0.9, 1) [1000] 3960 Hãy nhớ rằng, hàm ifelse () có thể tái chế các đối số của nó. Và đó là chính xác những gì nó làm ở đây. Trong cuộc gọi hàm ifelse () trước đó, bạn dịch các vector hợp logic được tạo bởi biểu thức my. giờ> 100 vào một vector chứa các số 0. 9 và 1 thay cho TRUE và FALSE.

Thích ứng chức năng trong R

Tất nhiên, bạn cần phải thích ứng với chức năng priceCalculator () theo cách mà bạn cũng có thể nhập một vector với các giá trị cho đối số chung. Nếu không, bạn sẽ không thể tính giá cho một hỗn hợp của khách hàng công cộng và tư nhân. Chức năng cuối cùng sẽ như sau:

priceCalculator <- function (hours, pph = 40, public) {net. giá <- giờ * net pph. giá 100, 0.9, 1) tot. giá <- net. giá * ifelse (public, 1. 06, 1.12) round (price)}

Tiếp theo, tạo một khung dữ liệu nhỏ để kiểm tra chức năng. Ví dụ: >> khách hàng <- dữ liệu. frame (+ giờ = c (25, 110, 125, 40), + public = c (TRUE, TRUE, FALSE, FALSE) +)

Bạn có thể sử dụng khung dữ liệu này bây giờ làm đối số cho hàm priceCalculator () như thế này: >> với (khách hàng, priceCalculator (giờ, public = công cộng)) [1] 1060 4198 5040 1792

Làm thế nào để sử dụng Vectorization với If Statements in R - núm vú

Lựa chọn của người biên tập

ĐịNh dạng Kiểm thử GED trên máy vi tính và các kỹ năng bắt buộc

ĐịNh dạng Kiểm thử GED trên máy vi tính và các kỹ năng bắt buộc

Thử GED được thực hiện trên máy vi tính. Điều đó có nghĩa là bạn cần phải quen thuộc với một máy tính, bàn phím và chuột. Nếu trước đây bạn chưa thử nghiệm trên máy tính, đây là một số điểm khác biệt bạn nên biết: Kỹ năng đánh máy là một tài sản. Bạn không phải là người đánh máy cảm ứng ...

Khi Không Có Thông tin để Trả lời Câu hỏi GED - những núm vú

Khi Không Có Thông tin để Trả lời Câu hỏi GED - những núm vú

Một số câu hỏi về GED kiểm tra có thể không cung cấp cho bạn đủ thông tin để tìm câu trả lời đúng. Ví dụ, một câu hỏi có thể yêu cầu một kết luận mà bạn không thể làm từ các thông tin được đưa ra. Ngay cả khi bạn biết một số thông tin có thể giúp bạn giải quyết vấn đề, đừng sử dụng nó. Khi bạn lấy GED, ...

Việc phải làm Ngay trước khi Bạn Lấy GED - núm vú

Việc phải làm Ngay trước khi Bạn Lấy GED - núm vú

Làm tốt bài kiểm tra GED nhiều hơn đi vào vị trí kiểm tra và trả lời các câu hỏi. Bạn cần phải chuẩn bị cho những thách thức trong các bài kiểm tra. Để đảm bảo rằng bạn đã sẵn sàng để giải quyết bài kiểm tra đầu vào, hãy chắc chắn rằng bạn làm những điều sau đây dẫn đến kiểm tra: Đủ ngủ. Đó là sự thật ...

Lựa chọn của người biên tập

Máy tính Độ phân giải Màn hình - núm vú

Máy tính Độ phân giải Màn hình - núm vú

Như máy ảnh kỹ thuật số, màn hình máy tính (và các thiết bị hiển thị khác) tạo mọi thứ bạn thấy trên màn hình pixels. Bạn thường có thể chọn từ một số cài đặt màn hình, mỗi kết quả đều có một số điểm ảnh màn hình khác nhau. Đây là các cài đặt chuẩn: 800 x 600 pixel 1024 x 768 pixel 1280 x 1024 pixel 1600 x ...

Ghi Các tùy chọn cho máy ảnh SLR kỹ thuật số của bạn - núm vú

Ghi Các tùy chọn cho máy ảnh SLR kỹ thuật số của bạn - núm vú

Các cài đặt cơ bản của máy ảnh dSLR và chỉnh sửa phim chụp SLR kỹ thuật số và lưu ảnh và phim, cũng như các tùy chọn liên quan đến ảnh và tiếp xúc khác. Thanh cuộn ở phía bên phải của hệ thống menu cho bạn biết bạn đang ở đâu - lên hoặc xuống - khi bạn xem xét các lựa chọn riêng lẻ trong ...

Máy tính Độ phân giải máy in - độ dày

Máy tính Độ phân giải máy in - độ dày

Độ Phân giải máy in được đo bằng các chấm trên mỗi inch (dpi). Hình ảnh được in được tạo thành bởi các chấm nhỏ màu sắc, và có bao nhiêu dpi mà máy in có thể sản xuất xác định độ phân giải của máy in. Độ phân giải càng cao, điểm chấm nhỏ hơn và hình ảnh in càng tốt. Nhưng các máy in khác nhau sử dụng các công nghệ in khác nhau, một số trong đó ...

Lựa chọn của người biên tập

Nhân chủng học Các chủ đề để nghiên cứu cho bài kiểm tra tương tự Miller (MAT) - những con voi

Nhân chủng học Các chủ đề để nghiên cứu cho bài kiểm tra tương tự Miller (MAT) - những con voi

Nhân chủng học là nghiên cứu về con người và hành vi của chúng. Để nghiên cứu nhân chủng học cho bài kiểm tra Miller Analogies (MAT), bạn sẽ cần phải tập trung vào các thuật ngữ và các con số quan trọng được liệt kê ở đây. Nếu bạn từng tự hỏi tại sao mọi người hành động theo cách họ làm, bạn có thể thấy nhân học hấp dẫn. Các thuật ngữ nhân học xuất hiện trên bài kiểm tra MAT ...

Các chủ đề kiến ​​trúc cho Nghiên cứu Thử nghiệm Tương tự Miller (MAT) - núm vú

Các chủ đề kiến ​​trúc cho Nghiên cứu Thử nghiệm Tương tự Miller (MAT) - núm vú

Cho Thử nghiệm Tương tự Miller, bạn nên làm quen với các ví dụ nổi tiếng về kiến ​​trúc - như Đấu trường La Mã La Mã. Trên sàn MAT, kiến ​​trúc không phải là lớn như một loại hình nghệ thuật, do đó bao phủ các căn cứ có thể được một chút dễ dàng hơn. Các danh sách dưới đây sẽ làm quen với các kiến ​​trúc sư và kiến ​​trúc sư quan trọng nhất trong lịch sử của bạn và