Lập trình với R: Phát sinh chuỗi số

Sequence numbers

Sequence numbers


Trong bài viết này, chúng ta sẽ học về cách tạo ra chuỗi số trong R.

Cách đơn giản nhất để tạo ra chuỗi số trong R đó là sử dụng toán tử “:”.

# Tạo chuỗi số từ 1 đến 20, mỗi số cách nhau một đơn vị.
1:20
[1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
pi:10
[1] 3.141593 4.141593 5.141593 6.141593 7.141593 8.141593 9.141593
15:1
[1] 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1

Để tìm hiểu thêm về toán tử “:” chúng ta có thể dùng lệnh sau:

?`:`

Để tùy biến nâng cao trong cách tạo chuỗi số, ngoài toán tử “:”, ta còn có thể sử dụng hàm seq() trong trường hợp này:

seq(1, 20)
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

# tạo chuỗi số từ 0 đến 10, mỗi số cách nhau 0.5 đơn vị
seq(0, 10, by=0.5)
[1]  0.0  0.5  1.0  1.5  2.0  2.5  3.0  3.5  4.0  4.5  5.0  5.5  6.0  6.5  7.0
[16]  7.5  8.0  8.5  9.0  9.5 10.0

# tạo chuỗi số từ 5 đến 10, đảm bảo sinh được 30 số
seq(5, 10, length=30)
[1]  5.000000  5.172414  5.344828  5.517241  5.689655  5.862069  6.034483
 [8]  6.206897  6.379310  6.551724  6.724138  6.896552  7.068966  7.241379
[15]  7.413793  7.586207  7.758621  7.931034  8.103448  8.275862  8.448276
[22]  8.620690  8.793103  8.965517  9.137931  9.310345  9.482759  9.655172
[29]  9.827586 10.000000

Giả sử chúng ta có vector my_seq có độ dài chuỗi số bất kỳ, ta muốn phát sinh chuỗi số từ dựa vào độ dài của vector này. Ta có thể làm như sau:

# cách 1
1:length(my_seq)

# cách 2
seq(along.with = my_seq)

# cách 3
seq_along(my_seq)

Trên thực tế, ta có nhiều hướng tiếp cận để giải quyết cùng một vấn đề, đặc biệt trong R. Hướng tiếp cận đơn giản nhất có thiên hướng biểu hiện bằng câu lệnh ngắn gọn nhất. Hơn nữa, điều này còn giúp cho code của bạn dễ hiểu hơn và không mất nhiều thời gian để hình dung đoạn code này đang nói gì.

Nếu trong R đã có sẵn built-in function (hàm dựng sẵn) phục vụ cho những tác vụ cụ thể thì bạn nên sử dụng các hàm này. Vì chúng chắc chắn là những hàm đã được tối ưu hóa về mặt tính toán.

Một hàm nữa cũng trong tác vụ tạo chuỗi số trong R đó là hàm rep(), viết tắt của ‘replicate’. Chúng ta hãy xem qua các ví dụ về hàm này:

# tạo dãy số gồm 40 chữ số 0
rep(0, times = 40)
[1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[39] 0 0

# tạo dãy số lặp lại 10 lần của chuỗi số 0, 1, 2
rep(c(0, 1, 2), times = 10)
[1] 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2

# tạo dãy số lặp lại 10 lần mỗi chữ số trong chuỗi số 0, 1, 2
rep(c(0, 1, 2), each = 10)
[1] 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2

Như vậy, ta đã biết cách phát sinh chuỗi số trong R qua 3 cách: sử dụng toán tử `:`, sử dụng hàm seq() và hàm rep().

Nguồn tham khảo: http://swirlstats.com/

Advertisements

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s