楼主: qwqwqw
5748 20

[原创博文] 一个比较集合大小的问题 [推广有奖]

21
楚韵荆风 学生认证  发表于 2011-1-14 23:28:00
如果只是删除重复的行,在R中可以按照这样的思路做。
比如:有两行,第一行为A,B,C,D,E,第二行为C,D;
> fun=function(x,y)
+ { n1=length(x)
+   n2=length(y)
+   t=0;
+   if(n1>n2)
+   { for(i in 1:n2){ if(any(x==y)) s=1 else s=0; t=t+s }
+     if(t==n2) list(x)  else list(x,y)     #如果t=n2说明x包含y,输出x,否则,x和y都输出
+   }else
+    { for(i in 1:n1){ if(any(y==x)) s=1 else s=0; t=t+s }
+      if(t==n1) list(y)  else list(x,y)    #如果t=n1说明y包含x,输出y,否则,x和y都输出
+    }
+ }

> x=c('A','B','C','D','E')
> y=c('C','D')
> fun(x,y)
[[1]]
[1] "A" "B" "C" "D" "E"
比如:有两行,第一行为A,B,C,D,E,第二行为C,D,R;
> x=c('A','B','C','D','E')
> y=y=c('C','D','R')
> fun(x,y)
[[1]]
[1] "A" "B" "C" "D" "E"

[[2]]
[1] "C" "D" "R"

其实还可以用which语句来做
共享是一种彼此的快乐

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-22 19:25