Làm cách nào để tôi có được số lượng hàng của data.frame trong R? [đóng cửa]


157

Sau khi đọc dữ liệu:

dataset <- read.csv("forR.csv")
  • Làm thế nào tôi có thể nhận được R để cho tôi số lượng các trường hợp nó chứa?
  • Ngoài ra, giá trị trả về sẽ bao gồm các trường hợp loại trừ được bỏ qua với na.omit(dataset)?

1
Tôi cũng khuyên bạn nên xem str()vì nó cung cấp các chi tiết hữu ích khác về đối tượng của bạn. Thường có thể giải thích lý do tại sao một cột không hoạt động như bình thường (yếu tố thay vì số, v.v.).
Đuổi theo

3
Vui lòng đọc hướng dẫn R của Owen trước ( cran.r-project.org/doc/contrib/Owen-TheRGuide.pdf ) và nếu có thể, Giới thiệu về R ( cran.r-project.org/doc/manuals/R- giới thiệu.pdf ). Cả hai đều có trên trang web chính thức của R. Bạn thật may mắn khi bạn thực sự nhận được câu trả lời. Trong danh sách trợ giúp, người ta sẽ chuyển hướng bạn đến hướng dẫn sử dụng theo cách kém thanh lịch. Không có vi phạm nghĩa.
Joris Meys

11
@Joris - Điểm lấy (không vi phạm), nhưng ấn tượng của tôi là các trang SE được thiết kế để thúc đẩy việc học tập giải pháp / vấn đề theo cách không được hướng dẫn sử dụng. Ngoài ra, câu hỏi này bây giờ sẽ có sẵn cho những người mới bắt đầu. Cảm ơn các liên kết mặc dù.
Tom Wright

2
Tôi không đồng ý với khẳng định của bạn rằng câu hỏi này sẽ hữu ích cho những người mới bắt đầu, đặc biệt nếu họ không đọc lướt hướng dẫn. Họ sẽ chỉ tạo ra một câu hỏi trùng lặp.
Joshua Ulrich

6
Và, bốn năm sau, đây là lần thứ hai tôi nhận được trên Google khi cố gắng tìm câu trả lời cho câu hỏi này. Không cần tôi tạo bản sao (@JoshuaUlrich).
Richard

Câu trả lời:


173

datasetsẽ là một khung dữ liệu. Như tôi không có forR.csv, tôi sẽ tạo một khung dữ liệu nhỏ để minh họa:

set.seed(1)
dataset <- data.frame(A = sample(c(NA, 1:100), 1000, rep = TRUE),
                      B = rnorm(1000))

> head(dataset)
   A           B
1 26  0.07730312
2 37 -0.29686864
3 57 -1.18324224
4 91  0.01129269
5 20  0.99160104
6 90  1.59396745

Để lấy số lượng các trường hợp, hãy đếm số lượng hàng bằng nrow()hoặc NROW():

> nrow(dataset)
[1] 1000
> NROW(dataset)
[1] 1000

Để đếm dữ liệu sau khi bỏ qua NA, sử dụng các công cụ tương tự, nhưng quấn datasettrong na.omit():

> NROW(na.omit(dataset))
[1] 993

Sự khác biệt giữa NROW()NCOL()và các biến thể chữ thường của chúng ( ncol()nrow()) là các phiên bản chữ thường sẽ chỉ hoạt động cho các đối tượng có kích thước (mảng, ma trận, khung dữ liệu). Các phiên bản chữ hoa sẽ hoạt động với các vectơ, được xử lý như thể chúng là ma trận 1 cột và rất mạnh nếu bạn kết thúc việc đặt lại dữ liệu của mình sao cho R giảm kích thước trống.

Ngoài ra, sử dụng complete.cases()sumnó ( complete.cases()trả về một vectơ logic [ TRUEhoặc FALSE] cho biết nếu có bất kỳ quan sát nào NAcho bất kỳ hàng nào.

> sum(complete.cases(dataset))
[1] 993

36

Tóm tắt:

  1. Chạy dim(dataset)để lấy cả nk , bạn cũng có thể sử dụng nrow(df)ncol(df)(và thậm chí NROW(df)NCOL(df)- các biến thể cũng cần thiết cho các loại khác).

  2. Nếu bạn chuyển đổi, ví dụ thông qua dataset <- na.omit(dataset), thì các trường hợp sẽ biến mất và không được tính. Nhưng nếu bạn làm ví dụ như summary(dataset) các trường hợp NA được tính.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.