在R中比较两个矩阵是否相等

目录

方法一:使用all.equal()比较两个R对象是否近似相等

方法二:使用identical比较两个R对象是否精确相等。


方法一:使用all.equal()比较两个R对象是否近似相等

使用函数:all.equal(x,y) 比较两个R对象x和y是否近似相等

R 复制代码
> M1<-matrix(1:100,ncol=10)
> M1
      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
 [1,]    1   11   21   31   41   51   61   71   81    91
 [2,]    2   12   22   32   42   52   62   72   82    92
 [3,]    3   13   23   33   43   53   63   73   83    93
 [4,]    4   14   24   34   44   54   64   74   84    94
 [5,]    5   15   25   35   45   55   65   75   85    95
 [6,]    6   16   26   36   46   56   66   76   86    96
 [7,]    7   17   27   37   47   57   67   77   87    97
 [8,]    8   18   28   38   48   58   68   78   88    98
 [9,]    9   19   29   39   49   59   69   79   89    99
[10,]   10   20   30   40   50   60   70   80   90   100
> M2<-matrix(1:100,ncol=10)
> M2
      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
 [1,]    1   11   21   31   41   51   61   71   81    91
 [2,]    2   12   22   32   42   52   62   72   82    92
 [3,]    3   13   23   33   43   53   63   73   83    93
 [4,]    4   14   24   34   44   54   64   74   84    94
 [5,]    5   15   25   35   45   55   65   75   85    95
 [6,]    6   16   26   36   46   56   66   76   86    96
 [7,]    7   17   27   37   47   57   67   77   87    97
 [8,]    8   18   28   38   48   58   68   78   88    98
 [9,]    9   19   29   39   49   59   69   79   89    99
[10,]   10   20   30   40   50   60   70   80   90   100
> all.equal(M1,M2)
[1] TRUE

在帮助文件中的解释:

从帮助文件中的解释,我们可以知道all.equal(x,y)用于比较x与y是否近似相等。如果他们不同,会在某种程度上继续进行比较,并在console中返回差异报告。建议在if表达式中,不要直接使用all.equal函数,而是使用isTRUE(all.equal(...))或者使用identical()函数。

方法二:使用identical比较两个R对象是否精确相等。

identical(x,y)用于比较两个R对象是否完全相等(exactly equal)

identical()函数的帮助文件中的说明:

由此可知,测试两个对象是否完全相等的安全可靠的方法。在这种情况下返回TRUE,其他情况下返回FALSE。

R 复制代码
> M1<-matrix(1:100,ncol=10)
> M1
      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
 [1,]    1   11   21   31   41   51   61   71   81    91
 [2,]    2   12   22   32   42   52   62   72   82    92
 [3,]    3   13   23   33   43   53   63   73   83    93
 [4,]    4   14   24   34   44   54   64   74   84    94
 [5,]    5   15   25   35   45   55   65   75   85    95
 [6,]    6   16   26   36   46   56   66   76   86    96
 [7,]    7   17   27   37   47   57   67   77   87    97
 [8,]    8   18   28   38   48   58   68   78   88    98
 [9,]    9   19   29   39   49   59   69   79   89    99
[10,]   10   20   30   40   50   60   70   80   90   100
> M2<-matrix(1:100,ncol=10)
> M2
      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
 [1,]    1   11   21   31   41   51   61   71   81    91
 [2,]    2   12   22   32   42   52   62   72   82    92
 [3,]    3   13   23   33   43   53   63   73   83    93
 [4,]    4   14   24   34   44   54   64   74   84    94
 [5,]    5   15   25   35   45   55   65   75   85    95
 [6,]    6   16   26   36   46   56   66   76   86    96
 [7,]    7   17   27   37   47   57   67   77   87    97
 [8,]    8   18   28   38   48   58   68   78   88    98
 [9,]    9   19   29   39   49   59   69   79   89    99
[10,]   10   20   30   40   50   60   70   80   90   100
> identical(M1,M2)
[1] TRUE
> typeof(M1)
[1] "integer"
> typeof(M2)
[1] "integer"

注:使用identical()函数比较两个R对象是否完全相等时,如果不相等,要注意查看是否是数据类型不同,比如一个数据类型是double,一个数据类型是integer。

参考:

如何检查R中两个矩阵是否相等?-面圈网 (mianshigee.com) (介绍all.equal函数的相关示例)

如何在 R 中使用 identical() 函数 - 知乎 (zhihu.com) (介绍identical函数的相关示例)

相关推荐
handler015 小时前
从零实现自动化构建:Linux Makefile 完全指南
linux·c++·笔记·学习·自动化
赵钰老师6 小时前
【结构方程模型SEM】最新基于R语言结构方程模型分析
开发语言·数据分析·r语言
Hello_Embed6 小时前
嵌入式上位机开发入门(二十六):将 MQTT 测试程序加入 APP 任务
网络·笔记·网络协议·tcp/ip·嵌入式
不会编程的懒洋洋6 小时前
C# Task async/await CancellationToken
笔记·c#·线程·面向对象·task·同步异步
vastsmile6 小时前
(R)26.04.23 hermes agent执行本地命令超级慢的原因
开发语言·elasticsearch·r语言
zhangrelay9 小时前
蓝桥云课五分钟-通关自动控制-octave
笔记·学习
_李小白11 小时前
【AI大模型学习笔记之平台篇】第六篇:安卓开发AI工具介绍(Android CLI、Android Skill和Android Knowledge Base)
人工智能·笔记·学习
YaBingSec11 小时前
玄机靶场:供应链安全-供应链应急-Part2 通关笔记
java·笔记·安全
qeen8711 小时前
【算法笔记】双指针及其经典例题解析
c++·笔记·算法·双指针
China_Yanhy13 小时前
生产笔记:AI 集群的极致成本与数据保命指南
人工智能·笔记