就在线学习而言,重要的不是你花了多少钱,而是你投入了多少时间和精力。

BioWolf-TCGA数据库挖掘

当前位置: 主页 > 视频教程 >

R语言取交集函数intersect使用方法

时间:2017-05-19 16:00来源:未知 作者:乐老师 点击:
首先介绍三个函数,这三个函数说得上是三兄弟: R语言函数insect、union、setdiff intersect 两个向量的交集 intersect(x=c(1:8, NA), y = c(2:8, NA))[1] 2 3 4 5 6 7 8 NA# 两个字符串向量的交集只有一个元
一、首先介绍三个函数,这三个函数说得上是三兄弟:
R语言函数intersect、union、setdiff
1、intersect
两个向量的交集

intersect(x=c(1:8, NA), y = c(2:8, NA))
[1]  2  3  4  5  6  7  8 NA
# 两个字符串向量的交集只有一个元素 "abc"
intersect(x=c("abc", "bcd"), y = c("abc", 12, "BioWolf"))
[1] "abc"
2、union
求两个向量的并集
集合可以是任何数值类型

union(x=1:5, y=2:8)
[1] 1 2 3 4 5 6 7 8

union(x=c("abc", "26"), y=c("bcd", "BioWolf"))
[1] "abc"     "26"      "bcd"     "BioWolf"

3、setdiff
求向量x与向量y中不同的元素(只取x中不同的元素)
setdiff(x, y)

setdiff(x=1:8, y=2:6)
[1] 1 7 8

二、两个以上做交集
1、三个向量之间的交集,如果直接像两个向量一样使用,会得到这样的提示:
> intersect(a,b,c)
错误于intersect(a, b, c) : 参数没有用(c)

>intersect(x=c(1:5),y=c(3:8),z=c(2:6))
Error in intersect(x = c(1:5), y = c(3:8), z = c(2:6)) : 
  参数没有用(z = c(2:6))

2、解决方法一:
> intersect(intersect(a,b),c)

>intersect(intersect(x=c(1:5),y=c(3:8)),c(2:6))
[1] 3 4 5

3、解决方法二:
目前没有直接求多个集合交或并运算的函数.
如果集合数量比较少, 先求a与b的交集,然后赋值给某个向量,然后再求这个向量与c的交:
>z=intersect(a,b)
>z=intersect(z,c)
迭代形式.
但如果所求集合较多,建议使用循环建构求解。

> bio=intersect(x=c(1:5),y=c(3:8))
> biowolf=intersect(bio,c(2:6))
> biowolf
[1] 3 4 5

(责任编辑:乐老师) 马上与乐老师QQ联系 生物信息学
BioWolf二维码生成器
顶一下
(2)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
BioWolf打赏
推荐内容
一对一培训视频教程
生物信息学在线培训