R语言subset函数的用法
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