2010-12-06 31 views
6

tôi biết làm thế nào để tạo bảng trong R sử dụng table, như thế này:Tạo bảng với tổng số phụ cho mỗi hàng và mỗi cột

x <- rep(1:3,4) 
y <- rep(1:4,3) 
z<- cbind(x,y) 
table(z[,1],z[,2]) 

    1 2 3 4 
    1 1 1 1 1 
    2 1 1 1 1 
    3 1 1 1 1 

Làm thế nào tôi có thể thêm tổng lợi nhuận của bảng để làm cho nó trông giống như:

1 2 3 4 
    1 1 1 1 1 4 
    2 1 1 1 1 4 
    3 1 1 1 1 4 
    3 3 3 3 

Trả lời

8
> a 
    [,1] [,2] [,3] 
[1,] 1 1 1 
[2,] 1 1 1 
[3,] 1 1 1 

> a <- cbind(a, rowSums(a)) 
> a <- rbind(a, colSums(a)) 
> a 
    [,1] [,2] [,3] [,4] 
[1,] 1 3 1 5 
[2,] 1 1 1 3 
[3,] 1 1 1 3 
[4,] 3 5 3 11 

Một cách tiếp cận:

a <- addmargins(a, c(1, 2), sum) 
+0

Cảm ơn lời khuyên về 'addmargins', chưa bao giờ nghe về nó. – VitoshKa

+0

Tôi tình cờ tình cờ gặp nó khi giải quyết một vấn đề hoàn toàn không liên quan (một câu hỏi từ một trong các danh sách gửi thư R) một vài phút sau khi đăng câu trả lời của tôi. :) –

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