R语言中提取指定列(行)以外的所有列(行)

 

1、测试数据

复制代码
> dat <- as.data.frame(matrix(1:100, nrow = 10))
> colnames(dat) <- 1:10
> rownames(dat) <- 1:10
> dat
    1  2  3  4  5  6  7  8  9  10
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、提取2, 5,6列以外的所有列

复制代码
> dat
    1  2  3  4  5  6  7  8  9  10
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
> dat[,-c(2,5,6)]       ## 提取2,5,6列以外的所有列
    1  3  4  7  8  9  10
1   1 21 31 61 71 81  91
2   2 22 32 62 72 82  92
3   3 23 33 63 73 83  93
4   4 24 34 64 74 84  94
5   5 25 35 65 75 85  95
6   6 26 36 66 76 86  96
7   7 27 37 67 77 87  97
8   8 28 38 68 78 88  98
9   9 29 39 69 79 89  99
10 10 30 40 70 80 90 100
复制代码

 

subset实现:

复制代码
> dat
    1  2  3  4  5  6  7  8  9  10
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
> subset(dat, select = -c(1,5,6))   ## 提取1、5、6列以外的所有列
    2  3  4  7  8  9  10
1  11 21 31 61 71 81  91
2  12 22 32 62 72 82  92
3  13 23 33 63 73 83  93
4  14 24 34 64 74 84  94
5  15 25 35 65 75 85  95
6  16 26 36 66 76 86  96
7  17 27 37 67 77 87  97
8  18 28 38 68 78 88  98
9  19 29 39 69 79 89  99
10 20 30 40 70 80 90 100
复制代码

 

3、提取1、5、6行以外的所有行

复制代码
> dat
    1  2  3  4  5  6  7  8  9  10
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
> dat[-c(1,5,6),]         ## 提取1,5,6行以外的所有行
    1  2  3  4  5  6  7  8  9  10
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
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
复制代码

 

posted @   小鲨鱼2018  阅读(3958)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2021-04-29 c语言 5-9
2021-04-29 c语言 5-8
2021-04-29 c语言5-7
2021-04-29 c语言5-7
2021-04-29 c语言5-5 在应用对象式宏的数组中对数组元素进行倒序排列
2021-04-29 c语言5-4将数组a的元素倒序复制到数组b中
2021-04-29 c语言中设置数组元素的个数
点击右上角即可分享
微信分享提示