• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

R语言subset函数的用法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1、创建测试数据

> test <- as.data.frame(matrix(1:100,nrow = 10))
> test
   V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
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

 

2、按照行进行筛选  

> subset(test,V1 == 3)  ##提取第一列等于3的行
  V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
3  3 13 23 33 43 53 63 73 83  93

 

> subset(test,V1 >= 5)  ##提取第一列大于等于5的行
   V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
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

 

> subset(test,V1 >=5 & V2 >= 18) ## 提取第一列大于等于5 而且第二列大于等于18的行
   V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
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

 

> subset(test,V1 >= 5 | V2 <= 12) ## 提取第一列大于等于5 或者第二列小于等于12的行
   V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
1   1 11 21 31 41 51 61 71 81  91
2   2 12 22 32 42 52 62 72 82  92
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

 

3、按照列进行筛选

> subset(test,select = 3) ## 提取第三列
   V3
1  21
2  22
3  23
4  24
5  25
6  26
7  27
8  28
9  29
10 30

 

> subset(test,select = c(2,5,7)) ## 提取第2、5、7列
   V2 V5 V7
1  11 41 61
2  12 42 62
3  13 43 63
4  14 44 64
5  15 45 65
6  16 46 66
7  17 47 67
8  18 48 68
9  19 49 69
10 20 50 70

 

> subset(test,select = -c(2,5,7)) ##提取2、5、7列以外的所有列
   V1 V3 V4 V6 V8 V9 V10
1   1 21 31 51 71 81  91
2   2 22 32 52 72 82  92
3   3 23 33 53 73 83  93
4   4 24 34 54 74 84  94
5   5 25 35 55 75 85  95
6   6 26 36 56 76 86  96
7   7 27 37 57 77 87  97
8   8 28 38 58 78 88  98
9   9 29 39 59 79 89  99
10 10 30 40 60 80 90 100

 

4、同时按照行、列进行筛选

subset(test,V1 >= 4 & V2 >= 18,select = c(1,3,5)) ## 按照行列筛选
   V1 V3 V5
8   8 28 48
9   9 29 49
10 10 30 50

 

> subset(test,V1 >= 4 & V2 >= 18,select = -c(1,3,5)) ##同上
   V2 V4 V6 V7 V8 V9 V10
8  18 38 58 68 78 88  98
9  19 39 59 69 79 89  99
10 20 40 60 70 80 90 100

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
R语言学习——数据合并及绘制密度分布曲线图发布时间:2022-07-18
下一篇:
《R语言入门与实践》学习笔记二发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap