2014-09-25 84 views
-2

我想比较两个向量,但它不能正常工作,请你告诉我两个向量如何进行比较:如何比较两个向量中的R

x <- c(1,2,3,4) 
y <- c(5,6,7,8) 
if (x==y) print("same") else print("different") 
+1

看'all.equal'或'identical' – shadow 2014-09-25 07:35:17

回答

2

使用all能在这里工作。

> all(x==y) 
[1] FALSE 
> y1=c(5,6,7,8) 
> all(y==y1) 
[1] TRUE 

编辑 最好是用isTRUE(all.equal(x,y))避免回收

回收

> x=c(5,6,5,6) 
> y=c(5,6) 
> all(x==y) 
[1] TRUE 

更好的办法

> isTRUE(all.equal(x,y)) 
[1] FALSE 
> isTRUE(all.equal(y,y1)) 
[1] TRUE 
> x=c(5,6,5,6) 
> y=c(5,6) 
>isTRUE(all.equal(x,y)) 
[1] FALSE 
0

当谈到阵列相比,allany是你的朋友。如果你真的不意味着几何矢量但值的阵列,sort也应该是必要的:

> all(sort(x)==sort(y)) 
0

尝试:??

x <- c(1,2,3,4) 
y <- c(5,6,7,8) 
if(identical(x,y)) print("identical") else print("not identical")