Đếm số lượng của mỗi hàng duy nhất trong một khung dữ liệu? [đóng cửa]


8

Giả sử tôi có một khung dữ liệu như:

df<-data.frame(x1=c(0,1,1,1,2,3,3,3),
x2=c(0,1,1,3,2,3,3,2),
x3=c(0,1,1,1,2,3,3,2))
df
  x1 x2 x3
1  0  0  0
2  1  1  1
3  1  1  1
4  1  3  1
5  2  2  2
6  3  3  3
7  3  3  3
8  3  2  2

điều tôi muốn là đếm số lượng của mỗi hàng duy nhất như:

  x1 x2 x3 count
1  0  0  0  1
2  1  1  1  2
4  1  3  1  1
5  2  2  2  1 
6  3  3  3  2
8  3  2  2  1

Cách dễ nhất để nhận ra nó trong R là gì?


@Whuber, thay vì giữ nó, chỉ cần di chuyển nó sang SO. Đó là một câu hỏi hợp lý, được định dạng tốt và rõ ràng được hỏi trên một trang web SE sai. Chúng tôi có thể cung cấp nhiều câu trả lời hay khác mà người dùng trong tương lai có thể hưởng lợi.
David Arenburg

@David A Cảm ơn bạn đã gợi ý. Tôi nghĩ bạn đã đúng, nhưng tại thời điểm (a) tôi đã thấy có một câu trả lời ở đây và (b) Tôi cực kỳ nghi ngờ chính câu hỏi này đã xuất hiện trên SO trước đây.
whuber

1
@whuber, tôi đã không kiểm tra bản sao, nhưng tôi nghĩ OP vẫn sẽ nhận được nhiều câu trả lời hay hơn. Dù bằng cách nào, có vẻ như họ tốt với plyrđiều đó không còn quan trọng nữa tôi đoán.
David Arenburg

Câu trả lời:


13

Sử dụng countchức năng từ plyrgói.

library(plyr)
df = data.frame(x1=c(0,1,1,1,2,3,3,3),
               x2=c(0,1,1,3,2,3,3,2),
               x3=c(0,1,1,1,2,3,3,2))

count(df, vars = c("x1", "x2", "x3"))

Đầu ra:

> count(df, vars = c("x1", "x2", "x3"))
  x1 x2 x3 freq
1  0  0  0    1
2  1  1  1    2
3  1  3  1    1
4  2  2  2    1
5  3  2  2    1
6  3  3  3    2

1
Tôi đã sao chép và dán mã của bạn. Tôi đã nhận được: "Lỗi trong mutate_impl (.data, dot): Cột varsphải dài 8 (số hàng) hoặc một, không phải 3"
StatsSorceress 16/11/18
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.