假设我有一个名为
我希望行名与列名相同:
尽管如此,我想找到一种使用任何
Tables
的矩阵列表,其中包含列名称但不包含行名称。 Tables <- list(structure(c(0.810145949194718, 0.0792559803788517, 0.189854050805282,
0.920744019621148), .Dim = c(2L, 2L), .Dimnames = list(NULL,
c("e", "prod"))), structure(c(0.949326264941026, 0.24010922539329,
0.0506737350589744, 0.75989077460671), .Dim = c(2L, 2L), .Dimnames = list(
NULL, c("prod", "e"))))
我希望行名与列名相同:
rownames(Tables[[1]])<- colnames(Tables[[1]])
rownames(Tables[[2]])<- colnames(Tables[[2]])
我尝试使用lapply
但没有成功
lapply(Tables, function(x) rownames(x) <- colnames(x))
我使用了一个 for
循环来完成它
for(i in 1:length(Tables)){
rownames(Tables[[i]])<- colnames(Tables[[i]])
}
Tables # Expected result
[[1]]
e prod
e 0.81014595 0.1898541
prod 0.07925598 0.9207440
[[2]]
prod e
prod 0.9493263 0.05067374
e 0.2401092 0.75989077
尽管如此,我想找到一种使用任何
*apply
或基础中的任何其他函数来避免for
循环的方法,但我无法实现这个目标。 我阅读了this,但我无法弄清如何使用其中任何解决方案。 有什么建议吗?
Tables
对象中的矩阵已经具有匹配的列和行名称。 - Josh O'Brienfor
循环。 - Carl Witthoftlapply
中的匿名函数需要返回x
,也就是说,lapply(Tables, function(x) {rownames(x) <- colnames(x); x})
。 - Roland