gpt4 book ai didi

r - 验证 R 中矩阵之间的行名和列名是否相同

转载 作者:行者123 更新时间:2023-12-02 08:25:46 35 4
gpt4 key购买 nike

假设我有矩阵一和二:

    > one <- matrix(1:9, nrow=3, ncol=3, dimnames=list(c("X","Y","Z"), c("A", "B", "C")))
> one
A B C
X 1 4 7
Y 2 5 8
Z 3 6 9
> two <- matrix(1:9, nrow=3, ncol=3, dimnames=list(c("X","Y","Z"), c("WRONG", "B", "C")))
> two
WRONG B C
X 1 4 7
Y 2 5 8
Z 3 6 9

有没有命令可以产生一个逻辑值来验证矩阵一的列名和行名是否与矩阵二的列名和行名相同?

最佳答案

您正在寻找 identical()。对于行名 -

identical(rownames(one), rownames(two))
# [1] TRUE

colnames() 也是如此。对于所有 dimnames(),同样的事情 -

identical(dimnames(one), dimnames(two))
# [1] FALSE

同时对行和列分别进行 -

Map(identical, dimnames(one), dimnames(two))
# [[1]]
# [1] TRUE
#
# [[2]]
# [1] FALSE

更新:针对您的评论,您可以尝试使用多个矩阵

length(unique(lapply(list(one, two, three), dimnames))) == 1 

如果返回 FALSE,您知道至少有一组 dimnames 是不同的。

关于r - 验证 R 中矩阵之间的行名和列名是否相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32314554/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com