Mục lục:
- Đếm trong R bằng cách sử dụng áp dụng chức năng
- chức năng Hãy quay trở lại ví dụ của chúng ta từ phần trước: Hãy tưởng tượng bạn đã không tìm chim bồ câu vào ngày thứ hai. Điều này có nghĩa là, trong ngày đó, bạn không có bất kỳ dữ liệu nào, vì vậy bạn phải đặt giá trị đó cho NA như sau: counts [2, 2] <- nA
Video: Thay thế #N/A hàm Vlookup, Hlookup thành 0 hoặc ô trống 2025
Trong R, bạn có thể sử dụng hàm apply () để áp dụng một chức năng trên mỗi hàng hoặc cột của một ma trận hoặc khung dữ liệu. Điều này thể hiện một số cơ hội rất tiện dụng.
Đếm trong R bằng cách sử dụng áp dụng chức năng
Hãy tưởng tượng bạn tính các con chim ở sân sau của bạn vào ba ngày khác nhau và lưu giữ số liệu trong một ma trận như sau: >> đếm colnames (counts) đếm chim sẻ chim cút [1,] 3 6 8 [2,] 2 5 6 [3,] 4 1 1
Mỗi cột đại diện cho một loài khác nhau, và mỗi hàng đại diện cho một ngày khác. Bây giờ bạn muốn biết số lượng tối đa cho mỗi loài vào bất kỳ ngày nào. Bạn có thể xây dựng một vòng lặp để làm như vậy, nhưng bằng cách sử dụng (), bạn làm điều này trong một dòng mã:
>> áp dụng (tính, 2, tối đa) chim bồ câu chim cút 4 6 8
Hàm apply () trả về một vector với tối đa cho mỗi cột và thuận tiện sử dụng các tên cột như tên cho véc tơ này. Nếu R không tìm thấy tên cho thứ nguyên áp dụng (), nó sẽ trả về một đối tượng không tên.Chúng ta hãy xem cách áp dụng hàm này (). Trong các dòng mã trước đó, bạn đã sử dụng ba đối số:
Đối tượng mà hàm phải được áp dụng:
Trong trường hợp này, nó đếm ma trận.-
Kích thước hoặc chỉ số mà chức năng phải được áp dụng: Số 1 có nghĩa là hàng xấp xỉ, và số 2 có nghĩa là cột-khôn ngoan. Ở đây, chúng ta áp dụng hàm trên các cột. Trong trường hợp các mảng chiều nhiều hơn, chỉ số này có thể lớn hơn 2.
-
Tên của hàm cần được áp dụng: Bạn có thể sử dụng dấu ngoặc kép xung quanh tên hàm, nhưng bạn không có đến. Ở đây, chúng ta áp dụng hàm max Lưu ý rằng không có dấu ngoặc đơn cần thiết sau tên chức năng.
-
áp dụng
chức năng Hãy quay trở lại ví dụ của chúng ta từ phần trước: Hãy tưởng tượng bạn đã không tìm chim bồ câu vào ngày thứ hai. Điều này có nghĩa là, trong ngày đó, bạn không có bất kỳ dữ liệu nào, vì vậy bạn phải đặt giá trị đó cho NA như sau: counts [2, 2] <- nA
Nếu bạn áp dụng hàm max trên các cột của ma trận này, bạn sẽ nhận được kết quả sau: >> áp dụng (đếm, 2, tối đa) chim bồ câu chim ngỗng 4 NA 8
Đó không phải là điều bạn muốn. Để đối phó với các giá trị còn thiếu, bạn cần phải vượt qua đối số na.rm đến hàm max trong cuộc gọi apply () (xem chương 4). May mắn thay, điều này được thực hiện dễ dàng bằng R. Bạn chỉ cần thêm tất cả các đối số thừa vào hàm là các đối số thừa của lệnh apply () như sau: >> apply (counts, 2, max, na rm = TRUE) Bạn có thể truyền bất kỳ đối số nào bạn muốn vào hàm trong cuộc gọi apply () bằng cách thêm chúng vào giữa các dấu ngoặc đơn sau ba đối số đầu tiên.