Lập trình với R: Ngày và Thời gian

Date and time
Date and time

R có một phương thức đặc biệt để biểu diễn ngày và thời gian. Đây là kiểu dữ liệu hữu dụng khi bạn làm việc với dữ liệu mà đòi hỏi giá trị thay đổi theo thời gian (time-series data) hay những dữ liệu chứa các thông tin như ngày sinh chẳng hạn.

Ngày được biểu diễn bởi lớp ‘Date’ và Thời gian được biểu diễn bởi lớp ‘POSIXct’ và ‘POSIXlt’. Bên trong nó, Ngày được lưu dưới dạng số ngày kể từ 1970-01-01 và Thời gian được lưu dưới dạng số giây kể từ 1970-01-01 (POSIXct) hoặc danh sách giây, phút, giờ (POSIXlt).

Notebooks: r_datetime.

Advertisement

Lập trình với R: vapply và tapply

tapply
tapply

Ở bài viết trước, chúng ta đã học về hai hàm thành viên quan trọng trong R đó là lapply() và sapply(). Cả hai đều nhận đầu vào là list, apply một hàm tương ứng với các phần tử trong list, sau đó kết hợp và trả về kết quả cuối cùng. lapply() luôn trả về một list, trong khi sapply() cố gắng tinh giản kết quả trả về.

Trong bài viết này, ta sẽ học về cách sử dụng vapply() và tapply(), mỗi hàm đóng một vai trò nhất định vào chiến lược Split-Apply-Combine. Chúng ta sẽ sử dụng cùng tập dữ liệu ở bài viết ‘lapply và sapply’.

Tập dữ liệu Flags lấy từ UCI Machine Learning Repository chứa thông tin chi tiết về quốc kỳ của các quốc gia. Để biết thêm thông tin các bạn có thể truy cập tại trang web sau: http://archive.ics.uci.edu/ml/datasets/Flags.

Notebooks: vapply_and_tapply.

Lập trình với R: lapply and sapply

lapply and sapply
lapply and sapply

Trong bài viết này, ta sẽ học cách sử dụng hàm lapply() và sapply(), hai trong số những hàm quan trọng trong R. Chúng được gọi là loop function trong nhóm hàm *apply(). Những hàm mạnh mẽ này, cùng với các hàm gần kề chúng (vapply() và tapply()) cung cấp các công cụ chính xác và tiện lợi trong chiến lược phân tích dữ liệu Split-Apply-Combine (tách-áp dụng-kết hợp). Những hàm *apply này sẽ TÁCH (SPLIT) dữ liệu ban đầu ra thành những thành phần nhỏ hơn, ÁP DỤNG (APPLY) một tác vụ nào đó lên các thành phần này, và KẾT HỢP (COMBINE) các kết quả này lại. Để tìm hiểu chi tiết hơn về chiến lược này ta có thể tham khảo trong bài báo của Hadley Wickham’s Journal of Statistical Software có tiêu đề là “The Split-Apply-Combine Strategy for Data Analysis”.

Trong suốt bài viết này, ta sẽ sử dụng tập dữ liệu Flags (quốc kỳ) từ UCI Machine Learning Repository. Tập dữ liệu này chứa thông tin chi tiết về quốc kỳ của các quốc gia. Để biết thêm thông tin hãy truy cập vào link này: http://archive.ics.uci.edu/ml/datasets/Flags.

Notebooks: lapply_and_sapply.

Lập trình với R: Functions

Function
Function

Functions là một trong những thành phần cơ bản của ngôn ngữ R. Chúng là những mẫu code nhỏ có thể sử dụng lại nhiều lần và được xem như các đối tượng khác trong R. Ở các bài viết trước, chắc hẳn chúng ta cũng đã sử dụng qua nhiều hàm dựng sẵn (built-in function). Một function bao gồm tên hàm và đi kèm theo là các đối số (parameters).

Notebooks: how_to_func.

Lập trình với R: Biểu đồ cơ bản

histogram
histogram

Một trong những điểm mạnh nhất của R, khi so với các ngôn ngữ lập trình khác, đó là ta có thể dễ dàng tạo ra các biểu đồ chất lượng cao một cách dễ dàng. Trong bài viết này, chúng ta sẽ học về các biểu đồ cơ bản trong R. Chúng ta còn có các thư viện đồ thị nâng cao khác nhưng sẽ không được đề cập đến ở đây đó là lattice, ggplot2, và ggvis. Ta có thể tham khảo bài viết theo hướng tiếp cận khác với ggplot2. Xem thêm ở link sau: http://varianceexplained.org/r/teach_ggplot2_to_beginners/

Notebooks: basic_charts.

Lập trình với R: Matrices và Data Frames

Matrices and Data Frames
Matrices and Data Frames

Trong bài viết này, chúng ta sẽ khảo sát về matrices và data frames. Cả hai đều biểu diễn cấu trúc dữ liệu dạng bảng (rectangular), nghĩa là chúng được sử dụng để lưu trữ dữ liệu gồm các dòng và cột. Sự khác biệt duy nhất giữa matrices và data frames đó là matrices chỉ có thể chứa duy nhất một kiểu dữ liệu, trong khi data frames có thể chứa nhiều kiểu dữ liệu khác nhau.

Notebooks: matrix_and_dataframe.

Lập trình với R: Truy xuất vector

Vector
Vector

Trong bài viết này, ta sẽ học cách truy xuất các thành phần trong vector dựa trên những điều kiện chúng ta chỉ đinh. Ví dụ, chúng ta chỉ quan tâm đến 20 phần tử đầu tiên trong vector, hay truy xuất các phần tử không mang giá trị NA, hay chỉ truy xuất các phần tử dương. Kết thúc bài viết này, chúng ta sẽ biết cách xử lý từng tình huống trên.

Notebooks: accessing_vectors.

Lập trình với R: Dữ liệu bị thiếu

Missing data
Missing data

Dữ liệu bị thiếu (missing values) đóng một vai trò quan trọng trong thống kê và phân tích dữ liệu. Thông thường, missing values không nên bị bỏ qua mà cần được nghiên cứu cẩn thận để xem xét xem điều gì khiến cho các missing values này bị thiếu. Trong R, NA được sử dụng để thể hiện các giá trị không tồn tại (not available) hay bị thiếu (missing) theo nghĩa thống kê. Trong bài viết này, ta sẽ tìm hiểu kỹ hơn về các giá trị này.

Notebooks: handling_missing_data.

Lập trình với R: Vectors

Vector
Vector

Hôm nay, chúng ta sẽ tìm hiểu về vector, một trong những kiểu dữ liệu đơn giản và thông dụng nhất trong R. Vectors có hai định dạng: atomic vectors (vector đơn cấu trúc) và list (vector đa cấu trúc). Atomic vector chỉ chứa duy nhất một kiểu dữ liệu. Trong khi đó, list có thể chứa nhiều kiểu dữ liệu khác nhau. Chúng ta sẽ tìm hiểu về atomic vector trước rồi sau đó đến list.

Notebooks: vector_in_r.

Lấy và làm sạch dữ liệu với R: Thao tác dữ liệu với dplyr

ETL
ETL

Ở bài viết này, chúng ta sẽ thao tác trên dữ liệu với dplyr. dplyr là một package mạnh mẽ của R được viết bởi Hadley Wickham và Romain Francois cho phép chúng ta làm việc với dữ liệu dạng bảng (tabular). Một trong những khía cạnh độc đáo của dplyr đó là với cùng một tập các tools, chúng ta có thể thao tác với nhiều nguồn dữ liệu khác, bao gồm data frames, data tables, databases và multidimensional arrays. Trong bài viết này, chúng ta chỉ tập trung thao tác trên data frames. Tuy nhiên, bạn vẫn có thể áp dụng cho các dạng format khác.

Notebooks: working_with_dplyr.

Lấy và làm sạch dữ liệu với R: Ngày và Thời gian với lubridate

Watch
Watch

Trong bài viết này, ta sẽ khảo sát lubridate R package được phát triển bởi Garrett Grolemund và Hadley Wickham.  Theo tác giả đề cập, “lubridate có cú pháp đồng nhất và dễ nhớ giúp cho thao tác trên dữ liệu Ngày và Thời gian thêm thú vị thay vì bực dọc”. Nếu bạn đã từng làm việc với Ngày và Thời gian thì phát biểu trên sẽ khiến bạn chú ý.

Notebooks: datetime_with_lubridate.

Lấy và làm sạch dữ liệu với R: Dọn dẹp dữ liệu với tidyr

Data Cleaning
Data Cleaning

Trong bài viết này, ta sẽ học cách dọn dẹp dữ liệu với tidyr package. Các phần trong bài viết này đòi hỏi sử dụng dplyr. Nếu bạn không có kiến thức căn bản về dplyr, bạn nên đọc trước loạt bài dplyr trước khi bắt đầu bài viết này.

Notebooks: working_with_tidyr_dplyr.

R: Làm quen với dữ liệu Air quality

Trong bài viết này, tôi sẽ sử dụng tập dữ liệu air quality để minh họa đôi nét về quá trình phân tích sơ khởi trong data analysis. Trước khi bước vào áp dụng các giải thuật Machine learning, việc nên làm trước tiên đó là quan sát dữ liệu đầu vào. Từ đó, bạn sẽ cảm nhận được tổng quan về tập dữ liệu để có thể dùng trực giác của mình áp dụng những giải thuật phù hợp nhất.

Notebooks: air_quality.