2011-10-28 29 views
5

Trong R Tôi muốn tạo một ô mẫu trên dữ liệu đếm thay vì dữ liệu thô. Sơ đồ bảng của tôi trông giống như

Giá trị | Đếm
1 | 2
2 | 1

...
Hộp dữ liệu đã được tổng hợp trước/nhóm trong R

Thay vì

Value
...

ở đâu trong trường hợp thứ hai tôi chỉ có thể làm boxplot (x)

+0

Vì vậy, những gì sắp xếp của đồ thị là bạn mong đợi. Đó chỉ là hai giá trị đếm và ô chữ sẽ khá lạ. Có lẽ bạn đang nghĩ đến một barchart? –

+0

Đây chỉ là dữ liệu mẫu, tập dữ liệu thực của tôi có nhiều hàng hơn –

Trả lời

0

Tôi chắc chắn có cách để thực hiện những gì bạn muốn với bản tóm tắt dữ liệu arized, nhưng nếu không, bạn có thể lợi dụng thực tế là rep mất vectơ:

> dat <- data.frame(Value = 1:5, Count = sample.int(5)) 
> dat 
    Value Count 
1  1  1 
2  2  3 
3  3  4 
4  4  2 
5  5  5 
> rep(dat$Value, dat$Count) 
[1] 1 2 2 2 3 3 3 3 4 4 5 5 5 5 5 

Đơn giản chỉ cần quấn boxplot xung quanh đó và bạn sẽ nhận được những gì bạn muốn. Tôi chắc chắn rằng có một cách hiệu quả hơn/tốt hơn để làm điều đó, nhưng điều này sẽ làm việc cho bạn.

+0

Điều đó có hiệu quả, nhưng nó rất đau đớn trong trường hợp của tôi vì tôi muốn làm các ô của nhiều danh mục (ngoài Giá trị, Đếm) trong cốt truyện của tôi. Nhưng c'est la vie. Cám ơn vì sự gợi ý! –

+0

@ John - đừng lo lắng. Đề xuất khác của tôi là xem ggplot2. Tôi biết bạn có thể chuyển vào dữ liệu được tổng hợp trước ở đó. Rất tiếc, tôi không sử dụng đồ họa cơ sở thường xuyên: http://had.co.nz/ggplot2/geom_boxplot.html – Chase

0

tôi giải quyết một vấn đề tương tự gần đây bằng cách sử dụng các 'áp dụng' chức năng trên mỗi cột của tội với 'đại diện' chức năng:

> datablock <- apply(countblock[-1], 2, function(x){rep(countblock$value, x)}) 
> boxplot(datablock) 

... Trên đây giả định rằng giá trị của bạn trong cột đầu tiên và các cột tiếp theo chứa dữ liệu đếm.

0

Một sự kết hợp của repdata.frame có thể được sử dụng như một cách tiếp cận nếu biến khác là cần thiết để phân loại

Ví dụ.

with(data.frame(v1=rep(data$v1,data$count),v2=(data$v2,data$count)), 
    boxplot(v1 ~ v2) 
) 

Các vấn đề liên quan