Chúng ta sẽ thảo luận về các hàm vector R trong hướng dẫn này. Chúng là các hàm có thể được áp dụng trên R vectơ. Chúng tôi sẽ giải thích tất cả các chức năng với các ví dụ chi tiết để cung cấp cho bạn lệnh tốt hơn về khái niệm này.
Các bài viết liên quan:
Hàm R Vector là gì?
Trước hết, chúng ta hãy thảo luận về ý nghĩa chính xác của một hàm. Để thực hiện một tác vụ cụ thể, chúng ta sử dụng hàm, là một đoạn mã trong R. Trong R, các hàm này được gọi là đối tượng vì chúng tạo điều kiện cho cách thức hoạt động tương tự như các loại đối tượng khác. Các hàm mà chúng ta sử dụng trong vectơ R được gọi là hàm vectơ.
Các bài viết liên quan:
Ví dụ : rep (), seq (), sử dụng all () và any (), thêm trên c (), v.v.
Ở đây chúng ta sẽ thảo luận chi tiết về tất cả các hàm này của vectơ R với các ví dụ.
Hàm R rep ()
rep () được sử dụng để sao chép các giá trị trong x. Hai trường hợp phổ biến thể hiện các phiên bản đơn giản hóa nhanh hơn là rep.int và rep_len. Hơn nữa, các chức năng này không chung chung.
Bây giờ chúng ta hãy thảo luận về cách chúng ta có thể áp dụng đại diện này () cho bất kỳ vectơ nào với sự trợ giúp của các ví dụ.
Cách lặp lại vectơ trong R
Bạn có thể sử dụng hàm rep () theo một số cách nếu bạn muốn lặp lại toàn bộ vectơ.
Ví dụ:
Để lặp lại vectơ c (0, 0, 7) ba lần, hãy sử dụng mã này:
> rep(c(0, 0, 7), times = 4) [1] 0 0 7 0 0 7 0 0 7 0 0 7
Chúng ta cũng có thể lặp lại mọi giá trị bằng cách chỉ định từng đối số, như sau:
> rep(c(2, 4, 2), each = 2) [1] 2 2 4 4 2 2
Với mỗi giá trị, chúng ta có thể cho R biết tần suất nó phải lặp lại:
> rep(c(0, 7), times = c(4,3)) [1] 0 0 0 0 7 7 7
Trong seq, chúng ta sử dụng đối số, length.out để định nghĩa R. Nó sẽ lặp lại vectơ cho đến khi nó đạt đến độ dài được chỉ định, ngay cả khi lần lặp lại cuối cùng là không đầy đủ.
> rep(1:3,length.out=9) [1] 1 2 3 1 2 3 1 2 3
Đầu ra:
Hàm R seq ()
Nó tạo ra các chuỗi đều đặn. Hàm seq là chuẩn chung về bản chất cũng có một phương thức mặc định. seq.int đặt ra một vài hạn chế do tính sơ khai của nó nhưng nó cũng nhanh hơn nhiều. Hai trường hợp phổ biến thể hiện nguyên thủy nhanh là seq_along và seq_len.
Bây giờ chúng ta hãy thảo luận về cách chúng ta có thể áp dụng seq () này cho bất kỳ vectơ nào với sự trợ giúp của các ví dụ.
Cách tạo vectơ trong R
Để sử dụng số nguyên để tạo vectơ:
Ví dụ :
Để tạo danh sách các vectơ trên một phạm vi xác định, chúng tôi sử dụng ký hiệu dấu hai chấm (:).
Mã 1: 5 cung cấp cho bạn một vectơ có các số từ 1 đến 5 và 2: –5 tạo một vectơ có các số từ 2 đến –5.
Sử dụng seq (), chúng ta thực hiện các bước theo trình tự. Hàm Seq () được sử dụng để mô tả khoảng thời gian mà các con số sẽ giảm hoặc tăng.
Ví dụ :
Trong R, một vectơ có các số từ 4,5 đến 3,0 ở các bước 0,5.
> seq(from = 4.5, to = 3.0, by = -0.5) [1] 4.5 4.0 3.5 3.0
Bạn có thể chỉ định độ dài của chuỗi bằng cách sử dụng đối số, length.out. Sau đó, R có thể tự tính toán kích thước bước.
Ví dụ:
Bạn có thể tạo một vectơ gồm chín giá trị từ -2,7 đến 1,3 như sau:
> seq(from = -2.7, to = 1.3, length.out = 9) [1] -2.7 -2.2 -1.7 -1.2 -0.7 -0.2 0.3 0.8 1.3
Đầu ra:
Hàm R bất kỳ ()
Nó nhận tập các vectơ và trả về một tập các vectơ logic, trong đó ít nhất một trong các giá trị là đúng.
Cách sử dụng hàm R bất kỳ ()
Kiểm tra xem có bất kỳ hoặc tất cả các phần tử của vectơ là TRUE hay không. Cả hai hàm cũng chấp nhận nhiều đối tượng.
any(…, na.rm=FALSE)
Nơi đây,
- … Nghĩa là một hoặc nhiều đối tượng R cần được kiểm tra.
- na.rm có nghĩa là cho biết liệu các giá trị NA có nên được bỏ qua hay không.
Hàm R all ()
Nó nhận tập các vectơ và trả về một tập các vectơ logic, trong đó tất cả các giá trị đều là TRUE.
Cách sử dụng hàm R all ()
all(…, na.rm=FALSE)
Trong đó:
- … Nghĩa là một hoặc nhiều đối tượng R cần được kiểm tra.
- na.rm có nghĩa là cho biết liệu các giá trị NA có nên được bỏ qua hay không.
Các hàm any () và all () là các phím tắt vì chúng báo cáo bất kỳ hoặc tất cả các đối số của chúng là TRUE.
Hãy xem điều này bằng ví dụ:
> #Author DataFlair > x <- 1:10 > any(x > 5) [1] TRUE > any(x > 88) [1] FALSE > all(x > 88) [1] FALSE > all(x > 0) [1] TRUE
Đầu ra:
Giả sử rằng R thực hiện những điều sau:
any(x > 5)
Đầu tiên nó đánh giá x> 5:
(FALSE, FALSE, FALSE, FALSE, FALSE)
Hàm any () báo cáo liệu có bất kỳ giá trị nào trong số đó là TRUE hay không, trong khi hàm all () hoạt động và báo cáo nếu tất cả các giá trị đều TRUE.
Giao diện R’s C
Mã nguồn của R là một kỹ thuật mạnh mẽ để cải thiện kỹ năng lập trình. Tuy nhiên, nhiều hàm cơ bản R đã được viết bằng C.
R được sử dụng để tìm ra cách hoạt động của các hàm đó. Tất cả các hàm trong R được định nghĩa với tiền tố, Rf_ hoặc R_ .
Phác thảo giao diện R’s C
- Xác thực đầu vào nêu rõ về chính nó để hàm C không gặp sự cố R.
- Cấu trúc dữ liệu C chỉ ra cách dịch tên cấu trúc dữ liệu từ R sang C.
- Để tạo, thay đổi và tạo vectơ trong C, chúng tôi sử dụng Tạo và sửa đổi vectơ.
- Việc gọi C cũng xác định các chức năng với gói nội tuyến.
Điều kiện tiên quyết để làm việc trên giao diện C
Chúng tôi cần một trình biên dịch C cho giao diện C. Người dùng Windows có thể sử dụng Rtools trong khi người dùng Mac sẽ cần các công cụ dòng lệnh Xcode. Và, hầu hết các bản phân phối Linux sẽ đi kèm với các trình biên dịch cần thiết.
Trong Windows, cần phải bao gồm biến môi trường Windows PATH trong đó.
- Thư mục tệp thực thi Rtools – (C: \ Rtools \ bin)
- Thư mục thực thi trình biên dịch C – (C: \ Rtools \ gcc-4.6.3 \ bin)
Gọi các hàm C từ R
Nói chung, để gọi một hàm C , nó cần có hai phần:
- Hàm C
- Hàm trình bao bọc R sử dụng, Gọi ()
Chúng tôi triển khai hàm f (x) = 2x trong tệp, gấp đôi.c thông qua các dòng mã sau:
void doubler(int* mem) { *mem = *mem + *mem; }
Hiển thị mã:
Chạy lệnh sau trong thiết bị đầu cuối:
R CMD SHLIB doubling.c
Đầu ra:
Trên phiên tương tác R, nhập:
dyn.load("doubling.so") .C("doubler", x = as.integer(5))
Đầu ra:
Bản tóm tắt
Chúng ta đã thảo luận chi tiết về vectơ và hàm trên vectơ. Vectơ là một loại kiểu dữ liệu và có tầm quan trọng riêng của nó. Tuy nhiên, việc sử dụng một kiểu dữ liệu có chức năng sẽ thay đổi hoàn toàn ý nghĩa và cách sử dụng của nó. Chúng tôi phải phát triển một mã sử dụng chức năng duy nhất một lần và bạn có thể sử dụng mã đó bất cứ lúc nào. Không cần phải viết mã lặp đi lặp lại vì chương trình lớn hơn sẽ lưu trữ nó trong hai hoặc nhiều hàm.