我有以下矩阵
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
我想将它转换为具有命名“轴”和有序列名称的列联表(基本上保留现有的列列索引)。 换句话说,有些人喜欢:
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
答案 0 :(得分:0)
您可以在创建dimnames
matrix
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
事实上,您也可以在创建dimnames
时一直使用m
答案 1 :(得分:0)
我们可以使用dimnames
和names
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)