首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当矩阵维度未知时,如何设置矩阵的唯一行名和列名?

当矩阵维度未知时,如何设置矩阵的唯一行名和列名?
EN

Stack Overflow用户
提问于 2013-04-16 16:59:46
回答 3查看 79.1K关注 0票数 20

我有这样的矩阵:

     [,1][,2][,3][,4]
[1,]  12  32  43  55
[2,]  54  54  7   8
[3,]  2   56  76  88
[4,]  58  99  93  34

我事先不知道矩阵中有多少行和多少列。因此,我需要动态创建行名和列名。

我可以直接命名列(行),如下所示:

colnames(rmatrix) <- c("a", "b", "c", "d")

但是,我如何动态地创建我的名字向量来适应矩阵的维度?

nm <- ("a", "b", "c", "d")
colnames(rmatrix) <- nm 
EN

回答 3

Stack Overflow用户

发布于 2013-04-16 17:11:02

您可以使用rownamescolnames并设置do.NULL=FALSE来动态创建名称,如下所示:

set.seed(1)
rmatrix  <-  matrix(sample(0:100, 16), ncol=4)

dimnames(rmatrix) <- list(rownames(rmatrix, do.NULL = FALSE, prefix = "row"),
                          colnames(rmatrix, do.NULL = FALSE, prefix = "col"))

rmatrix
     col1 col2 col3 col4
row1   26   19   58   61
row2   37   86    5   33
row3   56   97   18   66
row4   89   62   15   42

您可以根据需要更改prefix以命名行/cols。

票数 24
EN

Stack Overflow用户

发布于 2013-04-16 17:08:45

要动态命名列(或行),可以尝试

colnames(rmatrix) <- letters[1:ncol(rmatrix)]

其中letters可以替换为您选择的列名矢量。您可以对行执行类似的操作。

票数 8
EN

Stack Overflow用户

发布于 2017-06-11 06:38:46

您可以使用provideDimnames。一些具有不同定制程度的示例:

m <- matrix(1:12, ncol = 3)

provideDimnames(m)
#   A B  C
# A 1 5  9
# B 2 6 10
# C 3 7 11
# D 4 8 12

provideDimnames(m, base = list(letters, LETTERS))
#   A B  C
# a 1 5  9
# b 2 6 10
# c 3 7 11
# d 4 8 12

provideDimnames(m, base = list(paste0("row_", letters), paste0("col_", letters)))
#       col_a col_b col_c
# row_a     1     5     9
# row_b     2     6    10
# row_c     3     7    11
# row_d     4     8    12
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16032778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档