《R语言编程艺术》——2.10 测试向量相等
2.10 测试向量相等
假设我们要测试两个向量是否相等,使用==的朴素方法将不可行:
事实上,==是一个向量化的函数。语句x==y是将函数==()应用到x和y的每一组元素上,得到一个布尔值的向量。
那么我们可以做什么呢?一种选择是结合==的向量化本质,应用函数all():
对==的结果应用all()函数会询问其所有元素是否全为真,它与询问x与y是否完全一致有同样的效果。
甚至更好地是,我们可以简单地使用identical函数,像这样:
但要小心,因为正如identical这个词的字面意思,identical函数判断的是两个对象是否完全一样。看看下面这个R会话:
因此,符号:产生的是整数,而c()产生的是浮点数。但是谁能直接看出来呢?