zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    OCP-1Z0-051-V9.02-55题
    OCP-1Z0-051-V9.02-60题
    OCP-1Z0-053-V12.02-59题
    OCP-1Z0-053-V12.02-184题
    OCP-1Z0-053-V12.02-595题
    OCP-1Z0-053-V12.02-584题
    OCP-1Z0-053-V12.02-234题
    OCP-1Z0-053-V12.02-548题
    OCP-1Z0-053-V12.02-549题
    OCP-1Z0-053-V12.02-551题
  • 原文地址:https://www.cnblogs.com/liujiaxin2018/p/13763799.html
Copyright © 2011-2022 走看看