将行名和列名分配给许多矩阵

时间:2020-10-19 08:48:38

标签: r

我有一个问题,我肯定可以很容易地回答,但是我似乎无法解决。我有许多格式相同的矩阵,并希望为它们分配相同的列和行名称。我试图通过调用所有矩阵然后分配名称来循环执行此操作。

这是我可复制的示例。

mnames <- letters[1:10] # The names to be assigned

mat1 <- matrix(rnorm(100),10,10)
mat2 <- matrix(rnorm(100),10,10)
mat3 <- matrix(rnorm(100),10,10)

obs <- c("mat2", "mat2", "mat3")

for(i in obs){
  rownames(as.name(i)) <- mnames
  colnames(as.name(i)) <- mnames
}

似乎循环没有调用对象,但是我不明白为什么?非常感谢您的帮助,我有很多矩阵,一一完成所有的分配工作将很乏味。谢谢!

1 个答案:

答案 0 :(得分:2)

您可以在get循环中for矩阵,但我认为最好用mget将它们放入列表,更改dimnames,然后需要将其分配回全球环境。

list_mat <- lapply(mget(obs), function(x) {dimnames(x) <- list(mnames, mnames);x})
list2env(list_mat, .GlobalEnv)
相关问题