簡體   English   中英

如何從矩陣轉換為列聯表?

[英]How to convert from a matrix to a contingency table?

我有以下矩陣

matrix(c(1228,39,2,158,100,649,1,107,1,0,54,9,73,12,4,137), nrow=4)
    [,1] [,2] [,3] [,4]
[1,] 1228  100    1   73
[2,]   39  649    0   12
[3,]    2    1   54    4
[4,]  158  107    9  137

並且我想將其轉換為具有命名“ axes”和有序列名的列聯表(基本上保留現有的列行索引)。 換句話說,有些像:

      Variable 1
        [,1] [,2] [,3] [,4]
    [1,] 1228  100    1   73
var2[2,]   39  649    0   12
    [3,]    2    1   54    4
    [4,]  158  107    9  137

您可以在創建matrix時分配dimnames

m = matrix(c(1228,39,2,158,100,649,1,107,1,0,54,9,73,12,4,137), nrow=4)

matrix(m, nrow = NROW(m), dimnames=list(var1 = sequence(NROW(m)), var2 = sequence(NCOL(m))))
#    var2
#var1    1   2  3   4
#   1 1228 100  1  73
#   2   39 649  0  12
#   3    2   1 54   4
#   4  158 107  9 137 

實際上,您也可以在創建m時一開始就使用dimnames

我們可以使用dimnamesnames

dimnames(m1) <- list(NULL, NULL)
names(dimnames(m1)) <- c("Var2", "Variable 1")
m1
#     Variable 1
#Var2   [,1] [,2] [,3] [,4]
#   [1,] 1228  100    1   73
#   [2,]   39  649    0   12
#   [3,]    2    1   54    4
#   [4,]  158  107    9  137

或一行

dimnames(m1) <- list(Var2 = NULL, `Variable 1` = NULL)

或另一種寫法

dimnames(m1) <- setNames(vector("list", 2), c("Var2", "Variable 1"))

數據

m1 <- matrix(c(1228,39,2,158,100,649,1,107,1,0,54,9,73,12,4,137), nrow=4)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM