Sắp xếp DataFrame trong R

Sap Xep Dataframe Trong R



Sắp xếp DataFrames trong R là một thao tác quan trọng trong phân tích và thao tác dữ liệu. Đáng chú ý, R cung cấp rất nhiều tính linh hoạt trong việc sắp xếp dữ liệu dựa trên nhiều cột và sắp xếp theo thứ tự tăng dần hoặc giảm dần. Trong R, việc sắp xếp DataFrames có thể được thực hiện bằng nhiều phương thức và hàm khác nhau. Trong bài viết này, chúng ta sẽ đi qua các chức năng khác nhau giúp chúng ta sắp xếp DataFrame theo bất kỳ thứ tự nào được chỉ định.

Ví dụ 1: Sắp xếp DataFrame bằng phương thức Order() trong R

Hàm order() trong R được sử dụng để sắp xếp DataFrames theo một hoặc nhiều cột. Hàm thứ tự lấy các chỉ số của các hàng đã sắp xếp để sắp xếp lại các hàng của DataFrame.

emp = dữ liệu. khung ( tên = c ( 'Andy' , 'Đánh dấu' , 'Bonnie' , 'Caroline' , 'John' ) ,

tuổi = c ( hai mươi mốt , 23 , 29 , 25 , 32 ) ,

lương = c ( 2000 , 1000 , 1500 , 3000 , 2500 ) )

con mèo ( ' \N \N Khung dữ liệu được sắp xếp theo tên theo thứ tự tăng dần \N ' )

sorted_asc = emp [ với ( emp , đặt hàng ( tên ) ) , ]

in ( sorted_asc )

Ở đây, chúng tôi xác định Khung dữ liệu “emp” với ba cột chứa các giá trị khác nhau. Hàm cat() được triển khai để in câu lệnh cho biết rằng Khung dữ liệu “emp” theo cột “tên” theo thứ tự tăng dần sẽ được sắp xếp. Đối với điều này, chúng tôi sử dụng hàm order() trong R để trả về vị trí chỉ mục của các giá trị trong một vectơ được sắp xếp theo thứ tự tăng dần. Trong trường hợp này, hàm with() chỉ định rằng cột “tên” sẽ được sắp xếp. DataFrame đã sắp xếp được lưu trữ trong biến “sorted_asc” được truyền dưới dạng đối số trong hàm print() để in kết quả đã sắp xếp.







Do đó, kết quả được sắp xếp của DataFrame theo cột 'tên' theo thứ tự tăng dần được hiển thị như sau. Để có được thao tác sắp xếp theo thứ tự giảm dần, chúng ta chỉ cần chỉ định dấu âm với tên cột trong hàm order() trước đó:





Ví dụ 2: Sắp xếp DataFrame bằng Tham số phương thức Order() trong R

Ngoài ra, hàm order() lấy các đối số giảm dần để sắp xếp DataFrame. Trong ví dụ sau, chúng ta chỉ định hàm order() với đối số để sắp xếp theo thứ tự tăng hoặc giảm:





df = dữ liệu. khung (

nhận dạng = c ( 1 , 3 , 4 , 5 , 2 ) ,

khóa học = c ( 'Trăn' , 'Java' , 'C++' , 'MongoDB' , 'r' ) )

in ( 'Sắp xếp theo thứ tự giảm dần theo ID' )

in ( df [ đặt hàng ( df$id , giảm dần = ĐÚNG VẬY ) , ] )

Ở đây, trước tiên chúng ta khai báo biến “df” trong đó hàm data.frame() được xác định với ba cột khác nhau. Tiếp theo, chúng tôi sử dụng hàm print() để in một thông báo cho biết rằng Khung dữ liệu sẽ được sắp xếp theo thứ tự giảm dần dựa trên cột “id”. Sau đó, chúng ta triển khai lại hàm print() để tiến hành thao tác sắp xếp và in các kết quả đó. Bên trong hàm print(), chúng ta gọi hàm “đặt hàng” để sắp xếp Khung dữ liệu “df” dựa trên cột “khóa học”. Đối số 'giảm' được đặt thành TRUE để sắp xếp theo thứ tự giảm dần.

Trong hình minh họa sau đây, cột 'id' của DataFrame được sắp xếp theo thứ tự giảm dần:



Tuy nhiên, để có được kết quả sắp xếp theo thứ tự tăng dần, chúng ta phải thiết lập đối số giảm dần của hàm order() bằng FALSE như hình sau:

in ( 'Sắp xếp tăng dần theo ID' )

in ( df [ đặt hàng ( df$id , giảm dần = SAI ) , ] )

Ở đó, chúng tôi nhận được đầu ra của thao tác sắp xếp DataFrame theo cột “id” theo thứ tự tăng dần.

Ví dụ 3: Sắp xếp DataFrame bằng phương thức Arrange() trong R

Ngoài ra, chúng ta cũng có thể sử dụng phương thức sort() để sắp xếp DataFrame theo cột. Chúng ta cũng có thể sắp xếp theo thứ tự tăng dần hoặc giảm dần. Mã R đã cho sau đây sử dụng hàm sort():

thư viện ( 'dplyr' )

học sinh = dữ liệu. khung (

Nhận dạng = c ( 3 , 5 , 2 , 4 , 1 ) ,

điểm = c ( 70 , 90 , 75 , 88 , 92 ) )

in ( 'Tăng thứ tự sắp xếp theo Id' )

in ( sắp xếp ( học sinh , Nhận dạng ) )

Ở đây, chúng tôi tải gói “dplyr” của R để truy cập phương thức sắp xếp () để sắp xếp. Sau đó, chúng ta có hàm data.frame() chứa hai cột và đặt DataFrame thành biến “sinh viên”. Tiếp theo, chúng tôi triển khai hàm sắp xếp() từ gói “dplyr” trong hàm print() để sắp xếp DataFrame đã cho. Hàm sắp xếp () lấy Khung dữ liệu “sinh viên” làm đối số đầu tiên, theo sau là “Id” của các cột để sắp xếp theo. Hàm print() cuối cùng sẽ in DataFrame đã sắp xếp ra bàn điều khiển.

Chúng ta có thể thấy vị trí cột “Id” được sắp xếp theo thứ tự trong kết quả sau:

Ví dụ 4: Sắp xếp DataFrame theo ngày trong R

DataFrame trong R cũng có thể được sắp xếp theo các giá trị ngày. Đối với điều này, hàm đã sắp xếp phải được chỉ định bằng hàm as.date() để định dạng ngày tháng.

event_date = dữ liệu. khung ( sự kiện = c ( '4/3/2023' , '2/2/2023' ,

'1/10/2023' , '29/3/2023' ) ,

chi phí = c ( 3100 , 2200 , 1000 , 2900 ) )

event_date [ đặt hàng ( BẰNG . Ngày ( event_date$event , định dạng = '%d/%m/%Y' ) ) , ]

Ở đây, chúng tôi có Khung dữ liệu “event_date” chứa cột “sự kiện” với các chuỗi ngày ở định dạng “tháng/ngày/năm”. Chúng ta cần sắp xếp các chuỗi ngày này theo thứ tự tăng dần. Chúng tôi sử dụng hàm order() để sắp xếp DataFrame theo cột “sự kiện” theo thứ tự tăng dần. Chúng tôi thực hiện điều này bằng cách chuyển đổi chuỗi ngày trong cột “sự kiện” thành ngày thực tế bằng cách sử dụng hàm “as.Date” và chỉ định định dạng của chuỗi ngày bằng tham số “format”.

Do đó, chúng tôi đại diện cho dữ liệu được sắp xếp theo cột ngày 'sự kiện' theo thứ tự tăng dần.

Ví dụ 5: Sắp xếp DataFrame bằng phương thức Setorder() trong R

Tương tự, setorder() cũng là một phương thức khác để sắp xếp DataFrame. Nó sắp xếp DataFrame bằng cách lấy đối số giống như phương thức sort(). Mã R cho phương thức setorder() được đưa ra như sau:

thư viện ( 'bảng dữ liệu' )

d1 = dữ liệu. khung ( mã đặt hàng = c ( 1 , 4 , 2 , 5 , 3 ) ,

mục thứ tự = c ( 'quả táo' , 'quả cam' , 'Quả kiwi' , 'quả xoài' , 'chuối' ) )

in ( đặt hàng ( d1 , mục thứ tự ) )

Ở đây, chúng tôi đặt thư viện data.table trước vì setorder() là chức năng của gói này. Sau đó, chúng tôi sử dụng hàm data.frame() để tạo DataFrame. DataFrame chỉ được chỉ định với hai cột mà chúng tôi sử dụng để sắp xếp. Sau đó, chúng ta đặt hàm setorder() trong hàm print(). Hàm setorder() lấy Khung dữ liệu “d1” làm tham số đầu tiên và cột “orderId” làm tham số thứ hai để sắp xếp Khung dữ liệu. Hàm “setorder” sắp xếp lại các hàng của bảng dữ liệu theo thứ tự tăng dần dựa trên các giá trị trong cột “orderId”.

DataFrame được sắp xếp là đầu ra trong bảng điều khiển sau của R:

Ví dụ 6: Sắp xếp DataFrame bằng phương thức Row.Names() trong R

Phương thức row.names() cũng là một cách để sắp xếp DataFrame trong R. Row.names() sắp xếp DataFrames theo hàng đã chỉ định.

df < - dữ liệu. khung ( đội = c ( 'X' , 'X' , 'VÀ' , 'VÀ' , 'VỚI' ) ,

điểm = c ( 91 , 80 , 86 , 83 , 95 ) )

hàng ngang. tên ( df ) < - c ( 'MỘT' , 'D' , 'C' , 'VÀ' , 'B' )

df [ đặt hàng ( hàng ngang. tên ( df ) ) , ]

Tại đây, hàm data.frame() được thiết lập trong biến “df” trong đó các cột được chỉ định bằng các giá trị. Sau đó, tên hàng của DataFrame được chỉ định bằng hàm row.names(). Sau đó, chúng ta gọi hàm order() để sắp xếp DataFrame theo tên hàng. Hàm order() trả về các chỉ số của các hàng đã sắp xếp được sử dụng để sắp xếp lại các hàng của DataFrame.

Đầu ra hiển thị DataFrame được sắp xếp theo hàng theo thứ tự bảng chữ cái:

Phần kết luận

Chúng ta đã thấy các hàm khác nhau để sắp xếp DataFrames trong R. Mỗi phương thức đều có một ưu điểm và cần thao tác sắp xếp. Có thể có nhiều phương thức hoặc cách để sắp xếp DataFrame bằng ngôn ngữ R nhưng các phương thức order(), sort() và setorder() là quan trọng nhất và dễ sử dụng để sắp xếp.