• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

R语言入门23-数据处理:reshape2包

武飞扬头像
怕python的鱼
帮助1

目录

一、rbind与cbind函数

二、merge函数

三、reshape2包

 melt函数

 dcast、acast函数


一、rbind与cbind函数

cbind:将m列数据与n列数据合并,最终得到一个m n列的数据。

            使用前提是:cbind(x,y)中的矩阵x,y的行数必需相同。

rbind:将m行数据与n行数据合并,最终得到一个m n行的数据。

            使用前提是:cbind(x,y)中的矩阵x,y的列数必需相同。

  1.  
    #我们使用R自带的airqualty做演示
  2.  
     
  3.  
    > airquality
  4.  
    ozone solar.r wind temp month day
  5.  
    1 41 190 7.4 67 5 1
  6.  
    2 36 118 8.0 72 5 2
  7.  
    3 12 149 12.6 74 5 3
  8.  
    4 18 313 11.5 62 5 4
  9.  
    5 NA NA 14.3 56 5 5
  10.  
    6 28 NA 14.9 66 5 6
  11.  
    7 23 299 8.6 65 5 7
  12.  
    8 19 99 13.8 59 5 8
  13.  
    9 8 19 20.1 61 5 9
  14.  
    10 NA 194 8.6 69 5 10
  15.  
    11 7 NA 6.9 74 5 11
  16.  
    12 16 256 9.7 69 5 12
  17.  
    13 11 290 9.2 66 5 13
  18.  
    14 14 274 10.9 68 5 14
  19.  
    15 18 65 13.2 58 5 15
  20.  
    16 14 334 11.5 64 5 16
  21.  
    17 34 307 12.0 66 5 17
  22.  
    18 6 78 18.4 57 5 18
  23.  
    19 30 322 11.5 68 5 19
  24.  
    20 11 44 9.7 62 5 20
  25.  
    21 1 8 9.7 59 5 21
  26.  
    22 11 320 16.6 73 5 22
  27.  
    23 4 25 9.7 61 5 23
  28.  
    24 32 92 12.0 61 5 24
  29.  
    25 NA 66 16.6 57 5 25
  30.  
    26 NA 266 14.9 58 5 26
  31.  
    27 NA NA 8.0 57 5 27
  32.  
    28 23 13 12.0 67 5 28
  33.  
    29 45 252 14.9 81 5 29
  34.  
    30 115 223 5.7 79 5 30
  35.  
    31 37 279 7.4 76 5 31
  36.  
    32 NA 286 8.6 78 6 1
  37.  
    33 NA 287 9.7 74 6 2
  38.  
    34 NA 242 16.1 67 6 3
  39.  
    35 NA 186 9.2 84 6 4
  40.  
    36 NA 220 8.6 85 6 5
  41.  
    37 NA 264 14.3 79 6 6
  42.  
    38 29 127 9.7 82 6 7
  43.  
    39 NA 273 6.9 87 6 8
  44.  
    40 71 291 13.8 90 6 9
  45.  
    41 39 323 11.5 87 6 10
  46.  
    42 NA 259 10.9 93 6 11
  47.  
    43 NA 250 9.2 92 6 12
  48.  
    44 23 148 8.0 82 6 13
  49.  
    45 NA 332 13.8 80 6 14
  50.  
    46 NA 322 11.5 79 6 15
  51.  
    47 21 191 14.9 77 6 16
  52.  
    48 37 284 20.7 72 6 17
  53.  
    49 20 37 9.2 65 6 18
  54.  
    50 12 120 11.5 73 6 19
  55.  
    51 13 137 10.3 76 6 20
  56.  
    52 NA 150 6.3 77 6 21
  57.  
    53 NA 59 1.7 76 6 22
  58.  
    54 NA 91 4.6 76 6 23
  59.  
    55 NA 250 6.3 76 6 24
  60.  
    56 NA 135 8.0 75 6 25
  61.  
    57 NA 127 8.0 78 6 26
  62.  
    58 NA 47 10.3 73 6 27
  63.  
    59 NA 98 11.5 80 6 28
  64.  
    60 NA 31 14.9 77 6 29
  65.  
    61 NA 138 8.0 83 6 30
  66.  
    62 135 269 4.1 84 7 1
  67.  
    63 49 248 9.2 85 7 2
  68.  
    64 32 236 9.2 81 7 3
  69.  
    65 NA 101 10.9 84 7 4
  70.  
    66 64 175 4.6 83 7 5
  71.  
    67 40 314 10.9 83 7 6
  72.  
    68 77 276 5.1 88 7 7
  73.  
    69 97 267 6.3 92 7 8
  74.  
    70 97 272 5.7 92 7 9
  75.  
    71 85 175 7.4 89 7 10
  76.  
    72 NA 139 8.6 82 7 11
  77.  
    73 10 264 14.3 73 7 12
  78.  
    74 27 175 14.9 81 7 13
  79.  
    75 NA 291 14.9 91 7 14
  80.  
    76 7 48 14.3 80 7 15
  81.  
    77 48 260 6.9 81 7 16
  82.  
    78 35 274 10.3 82 7 17
  83.  
    79 61 285 6.3 84 7 18
  84.  
    80 79 187 5.1 87 7 19
  85.  
    81 63 220 11.5 85 7 20
  86.  
    82 16 7 6.9 74 7 21
  87.  
    83 NA 258 9.7 81 7 22
  88.  
    84 NA 295 11.5 82 7 23
  89.  
    85 80 294 8.6 86 7 24
  90.  
    86 108 223 8.0 85 7 25
  91.  
    87 20 81 8.6 82 7 26
  92.  
    88 52 82 12.0 86 7 27
  93.  
    89 82 213 7.4 88 7 28
  94.  
    90 50 275 7.4 86 7 29
  95.  
    91 64 253 7.4 83 7 30
  96.  
    92 59 254 9.2 81 7 31
  97.  
    93 39 83 6.9 81 8 1
  98.  
    94 9 24 13.8 81 8 2
  99.  
    95 16 77 7.4 82 8 3
  100.  
    96 78 NA 6.9 86 8 4
  101.  
    97 35 NA 7.4 85 8 5
  102.  
    98 66 NA 4.6 87 8 6
  103.  
    99 122 255 4.0 89 8 7
  104.  
    100 89 229 10.3 90 8 8
  105.  
    101 110 207 8.0 90 8 9
  106.  
    102 NA 222 8.6 92 8 10
  107.  
    103 NA 137 11.5 86 8 11
  108.  
    104 44 192 11.5 86 8 12
  109.  
    105 28 273 11.5 82 8 13
  110.  
    106 65 157 9.7 80 8 14
  111.  
    107 NA 64 11.5 79 8 15
  112.  
    108 22 71 10.3 77 8 16
  113.  
    109 59 51 6.3 79 8 17
  114.  
    110 23 115 7.4 76 8 18
  115.  
    111 31 244 10.9 78 8 19
  116.  
    112 44 190 10.3 78 8 20
  117.  
    113 21 259 15.5 77 8 21
  118.  
    114 9 36 14.3 72 8 22
  119.  
    115 NA 255 12.6 75 8 23
  120.  
    116 45 212 9.7 79 8 24
  121.  
    117 168 238 3.4 81 8 25
  122.  
    118 73 215 8.0 86 8 26
  123.  
    119 NA 153 5.7 88 8 27
  124.  
    120 76 203 9.7 97 8 28
  125.  
    121 118 225 2.3 94 8 29
  126.  
    122 84 237 6.3 96 8 30
  127.  
    123 85 188 6.3 94 8 31
  128.  
    124 96 167 6.9 91 9 1
  129.  
    125 78 197 5.1 92 9 2
  130.  
    126 73 183 2.8 93 9 3
  131.  
    127 91 189 4.6 93 9 4
  132.  
    128 47 95 7.4 87 9 5
  133.  
    129 32 92 15.5 84 9 6
  134.  
    130 20 252 10.9 80 9 7
  135.  
    131 23 220 10.3 78 9 8
  136.  
    132 21 230 10.9 75 9 9
  137.  
    133 24 259 9.7 73 9 10
  138.  
    134 44 236 14.9 81 9 11
  139.  
    135 21 259 15.5 76 9 12
  140.  
    136 28 238 6.3 77 9 13
  141.  
    137 9 24 10.9 71 9 14
  142.  
    138 13 112 11.5 71 9 15
  143.  
    139 46 237 6.9 78 9 16
  144.  
    140 18 224 13.8 67 9 17
  145.  
    141 13 27 10.3 76 9 18
  146.  
    142 24 238 10.3 68 9 19
  147.  
    143 16 201 8.0 82 9 20
  148.  
    144 13 238 12.6 64 9 21
  149.  
    145 23 14 9.2 71 9 22
  150.  
    146 36 139 10.3 81 9 23
  151.  
    147 7 49 10.3 69 9 24
  152.  
    148 14 20 16.6 63 9 25
  153.  
    149 30 193 6.9 70 9 26
  154.  
    150 NA 145 13.2 77 9 27
  155.  
    151 14 191 14.3 75 9 28
  156.  
    152 18 131 8.0 76 9 29
  157.  
    153 20 223 11.5 68 9 30
  158.  
     
  159.  
    #现在想要在数据基础上加一列数据(ID:153*1的矩阵)
  160.  
    > ID <- c(1:153)
  161.  
    > data1 <- cbind(airquality,ID)
  162.  
    > data1 #加入后的结果
  163.  
    ozone solar.r wind temp month day ID
  164.  
    1 41 190 7.4 67 5 1 1
  165.  
    2 36 118 8.0 72 5 2 2
  166.  
    3 12 149 12.6 74 5 3 3
  167.  
    4 18 313 11.5 62 5 4 4
  168.  
    5 NA NA 14.3 56 5 5 5
  169.  
    6 28 NA 14.9 66 5 6 6
  170.  
    7 23 299 8.6 65 5 7 7
  171.  
    8 19 99 13.8 59 5 8 8
  172.  
    9 8 19 20.1 61 5 9 9
  173.  
    10 NA 194 8.6 69 5 10 10
  174.  
    11 7 NA 6.9 74 5 11 11
  175.  
    12 16 256 9.7 69 5 12 12
  176.  
    13 11 290 9.2 66 5 13 13
  177.  
    14 14 274 10.9 68 5 14 14
  178.  
    15 18 65 13.2 58 5 15 15
  179.  
    16 14 334 11.5 64 5 16 16
  180.  
    17 34 307 12.0 66 5 17 17
  181.  
    18 6 78 18.4 57 5 18 18
  182.  
    19 30 322 11.5 68 5 19 19
  183.  
    20 11 44 9.7 62 5 20 20
  184.  
    21 1 8 9.7 59 5 21 21
  185.  
    22 11 320 16.6 73 5 22 22
  186.  
    23 4 25 9.7 61 5 23 23
  187.  
    24 32 92 12.0 61 5 24 24
  188.  
    25 NA 66 16.6 57 5 25 25
  189.  
    26 NA 266 14.9 58 5 26 26
  190.  
    27 NA NA 8.0 57 5 27 27
  191.  
    28 23 13 12.0 67 5 28 28
  192.  
    29 45 252 14.9 81 5 29 29
  193.  
    30 115 223 5.7 79 5 30 30
  194.  
    31 37 279 7.4 76 5 31 31
  195.  
    32 NA 286 8.6 78 6 1 32
  196.  
    33 NA 287 9.7 74 6 2 33
  197.  
    34 NA 242 16.1 67 6 3 34
  198.  
    35 NA 186 9.2 84 6 4 35
  199.  
    36 NA 220 8.6 85 6 5 36
  200.  
    37 NA 264 14.3 79 6 6 37
  201.  
    38 29 127 9.7 82 6 7 38
  202.  
    39 NA 273 6.9 87 6 8 39
  203.  
    40 71 291 13.8 90 6 9 40
  204.  
    41 39 323 11.5 87 6 10 41
  205.  
    42 NA 259 10.9 93 6 11 42
  206.  
    43 NA 250 9.2 92 6 12 43
  207.  
    44 23 148 8.0 82 6 13 44
  208.  
    45 NA 332 13.8 80 6 14 45
  209.  
    46 NA 322 11.5 79 6 15 46
  210.  
    47 21 191 14.9 77 6 16 47
  211.  
    48 37 284 20.7 72 6 17 48
  212.  
    49 20 37 9.2 65 6 18 49
  213.  
    50 12 120 11.5 73 6 19 50
  214.  
    51 13 137 10.3 76 6 20 51
  215.  
    52 NA 150 6.3 77 6 21 52
  216.  
    53 NA 59 1.7 76 6 22 53
  217.  
    54 NA 91 4.6 76 6 23 54
  218.  
    55 NA 250 6.3 76 6 24 55
  219.  
    56 NA 135 8.0 75 6 25 56
  220.  
    57 NA 127 8.0 78 6 26 57
  221.  
    58 NA 47 10.3 73 6 27 58
  222.  
    59 NA 98 11.5 80 6 28 59
  223.  
    60 NA 31 14.9 77 6 29 60
  224.  
    61 NA 138 8.0 83 6 30 61
  225.  
    62 135 269 4.1 84 7 1 62
  226.  
    63 49 248 9.2 85 7 2 63
  227.  
    64 32 236 9.2 81 7 3 64
  228.  
    65 NA 101 10.9 84 7 4 65
  229.  
    66 64 175 4.6 83 7 5 66
  230.  
    67 40 314 10.9 83 7 6 67
  231.  
    68 77 276 5.1 88 7 7 68
  232.  
    69 97 267 6.3 92 7 8 69
  233.  
    70 97 272 5.7 92 7 9 70
  234.  
    71 85 175 7.4 89 7 10 71
  235.  
    72 NA 139 8.6 82 7 11 72
  236.  
    73 10 264 14.3 73 7 12 73
  237.  
    74 27 175 14.9 81 7 13 74
  238.  
    75 NA 291 14.9 91 7 14 75
  239.  
    76 7 48 14.3 80 7 15 76
  240.  
    77 48 260 6.9 81 7 16 77
  241.  
    78 35 274 10.3 82 7 17 78
  242.  
    79 61 285 6.3 84 7 18 79
  243.  
    80 79 187 5.1 87 7 19 80
  244.  
    81 63 220 11.5 85 7 20 81
  245.  
    82 16 7 6.9 74 7 21 82
  246.  
    83 NA 258 9.7 81 7 22 83
  247.  
    84 NA 295 11.5 82 7 23 84
  248.  
    85 80 294 8.6 86 7 24 85
  249.  
    86 108 223 8.0 85 7 25 86
  250.  
    87 20 81 8.6 82 7 26 87
  251.  
    88 52 82 12.0 86 7 27 88
  252.  
    89 82 213 7.4 88 7 28 89
  253.  
    90 50 275 7.4 86 7 29 90
  254.  
    91 64 253 7.4 83 7 30 91
  255.  
    92 59 254 9.2 81 7 31 92
  256.  
    93 39 83 6.9 81 8 1 93
  257.  
    94 9 24 13.8 81 8 2 94
  258.  
    95 16 77 7.4 82 8 3 95
  259.  
    96 78 NA 6.9 86 8 4 96
  260.  
    97 35 NA 7.4 85 8 5 97
  261.  
    98 66 NA 4.6 87 8 6 98
  262.  
    99 122 255 4.0 89 8 7 99
  263.  
    100 89 229 10.3 90 8 8 100
  264.  
    101 110 207 8.0 90 8 9 101
  265.  
    102 NA 222 8.6 92 8 10 102
  266.  
    103 NA 137 11.5 86 8 11 103
  267.  
    104 44 192 11.5 86 8 12 104
  268.  
    105 28 273 11.5 82 8 13 105
  269.  
    106 65 157 9.7 80 8 14 106
  270.  
    107 NA 64 11.5 79 8 15 107
  271.  
    108 22 71 10.3 77 8 16 108
  272.  
    109 59 51 6.3 79 8 17 109
  273.  
    110 23 115 7.4 76 8 18 110
  274.  
    111 31 244 10.9 78 8 19 111
  275.  
    112 44 190 10.3 78 8 20 112
  276.  
    113 21 259 15.5 77 8 21 113
  277.  
    114 9 36 14.3 72 8 22 114
  278.  
    115 NA 255 12.6 75 8 23 115
  279.  
    116 45 212 9.7 79 8 24 116
  280.  
    117 168 238 3.4 81 8 25 117
  281.  
    118 73 215 8.0 86 8 26 118
  282.  
    119 NA 153 5.7 88 8 27 119
  283.  
    120 76 203 9.7 97 8 28 120
  284.  
    121 118 225 2.3 94 8 29 121
  285.  
    122 84 237 6.3 96 8 30 122
  286.  
    123 85 188 6.3 94 8 31 123
  287.  
    124 96 167 6.9 91 9 1 124
  288.  
    125 78 197 5.1 92 9 2 125
  289.  
    126 73 183 2.8 93 9 3 126
  290.  
    127 91 189 4.6 93 9 4 127
  291.  
    128 47 95 7.4 87 9 5 128
  292.  
    129 32 92 15.5 84 9 6 129
  293.  
    130 20 252 10.9 80 9 7 130
  294.  
    131 23 220 10.3 78 9 8 131
  295.  
    132 21 230 10.9 75 9 9 132
  296.  
    133 24 259 9.7 73 9 10 133
  297.  
    134 44 236 14.9 81 9 11 134
  298.  
    135 21 259 15.5 76 9 12 135
  299.  
    136 28 238 6.3 77 9 13 136
  300.  
    137 9 24 10.9 71 9 14 137
  301.  
    138 13 112 11.5 71 9 15 138
  302.  
    139 46 237 6.9 78 9 16 139
  303.  
    140 18 224 13.8 67 9 17 140
  304.  
    141 13 27 10.3 76 9 18 141
  305.  
    142 24 238 10.3 68 9 19 142
  306.  
    [ reached 'max' / getOption("max.print") -- omitted 11 rows ]
  307.  
     
  308.  
     
  309.  
    #假设现在想要在以上基础上再加入一行数据(d143:1*6的矩阵)
  310.  
    > d143 <- c(100,233,4.2,34,9,20,143)
  311.  
    > data2 <- rbind(airquality,d143)
  312.  
    > data2 #加入后的结果
  313.  
    ozone solar.r wind temp month day
  314.  
    1 41 190 7.4 67 5 1
  315.  
    2 36 118 8.0 72 5 2
  316.  
    3 12 149 12.6 74 5 3
  317.  
    4 18 313 11.5 62 5 4
  318.  
    5 NA NA 14.3 56 5 5
  319.  
    6 28 NA 14.9 66 5 6
  320.  
    7 23 299 8.6 65 5 7
  321.  
    8 19 99 13.8 59 5 8
  322.  
    9 8 19 20.1 61 5 9
  323.  
    10 NA 194 8.6 69 5 10
  324.  
    11 7 NA 6.9 74 5 11
  325.  
    12 16 256 9.7 69 5 12
  326.  
    13 11 290 9.2 66 5 13
  327.  
    14 14 274 10.9 68 5 14
  328.  
    15 18 65 13.2 58 5 15
  329.  
    16 14 334 11.5 64 5 16
  330.  
    17 34 307 12.0 66 5 17
  331.  
    18 6 78 18.4 57 5 18
  332.  
    19 30 322 11.5 68 5 19
  333.  
    20 11 44 9.7 62 5 20
  334.  
    21 1 8 9.7 59 5 21
  335.  
    22 11 320 16.6 73 5 22
  336.  
    23 4 25 9.7 61 5 23
  337.  
    24 32 92 12.0 61 5 24
  338.  
    25 NA 66 16.6 57 5 25
  339.  
    26 NA 266 14.9 58 5 26
  340.  
    27 NA NA 8.0 57 5 27
  341.  
    28 23 13 12.0 67 5 28
  342.  
    29 45 252 14.9 81 5 29
  343.  
    30 115 223 5.7 79 5 30
  344.  
    31 37 279 7.4 76 5 31
  345.  
    32 NA 286 8.6 78 6 1
  346.  
    33 NA 287 9.7 74 6 2
  347.  
    34 NA 242 16.1 67 6 3
  348.  
    35 NA 186 9.2 84 6 4
  349.  
    36 NA 220 8.6 85 6 5
  350.  
    37 NA 264 14.3 79 6 6
  351.  
    38 29 127 9.7 82 6 7
  352.  
    39 NA 273 6.9 87 6 8
  353.  
    40 71 291 13.8 90 6 9
  354.  
    41 39 323 11.5 87 6 10
  355.  
    42 NA 259 10.9 93 6 11
  356.  
    43 NA 250 9.2 92 6 12
  357.  
    44 23 148 8.0 82 6 13
  358.  
    45 NA 332 13.8 80 6 14
  359.  
    46 NA 322 11.5 79 6 15
  360.  
    47 21 191 14.9 77 6 16
  361.  
    48 37 284 20.7 72 6 17
  362.  
    49 20 37 9.2 65 6 18
  363.  
    50 12 120 11.5 73 6 19
  364.  
    51 13 137 10.3 76 6 20
  365.  
    52 NA 150 6.3 77 6 21
  366.  
    53 NA 59 1.7 76 6 22
  367.  
    54 NA 91 4.6 76 6 23
  368.  
    55 NA 250 6.3 76 6 24
  369.  
    56 NA 135 8.0 75 6 25
  370.  
    57 NA 127 8.0 78 6 26
  371.  
    58 NA 47 10.3 73 6 27
  372.  
    59 NA 98 11.5 80 6 28
  373.  
    60 NA 31 14.9 77 6 29
  374.  
    61 NA 138 8.0 83 6 30
  375.  
    62 135 269 4.1 84 7 1
  376.  
    63 49 248 9.2 85 7 2
  377.  
    64 32 236 9.2 81 7 3
  378.  
    65 NA 101 10.9 84 7 4
  379.  
    66 64 175 4.6 83 7 5
  380.  
    67 40 314 10.9 83 7 6
  381.  
    68 77 276 5.1 88 7 7
  382.  
    69 97 267 6.3 92 7 8
  383.  
    70 97 272 5.7 92 7 9
  384.  
    71 85 175 7.4 89 7 10
  385.  
    72 NA 139 8.6 82 7 11
  386.  
    73 10 264 14.3 73 7 12
  387.  
    74 27 175 14.9 81 7 13
  388.  
    75 NA 291 14.9 91 7 14
  389.  
    76 7 48 14.3 80 7 15
  390.  
    77 48 260 6.9 81 7 16
  391.  
    78 35 274 10.3 82 7 17
  392.  
    79 61 285 6.3 84 7 18
  393.  
    80 79 187 5.1 87 7 19
  394.  
    81 63 220 11.5 85 7 20
  395.  
    82 16 7 6.9 74 7 21
  396.  
    83 NA 258 9.7 81 7 22
  397.  
    84 NA 295 11.5 82 7 23
  398.  
    85 80 294 8.6 86 7 24
  399.  
    86 108 223 8.0 85 7 25
  400.  
    87 20 81 8.6 82 7 26
  401.  
    88 52 82 12.0 86 7 27
  402.  
    89 82 213 7.4 88 7 28
  403.  
    90 50 275 7.4 86 7 29
  404.  
    91 64 253 7.4 83 7 30
  405.  
    92 59 254 9.2 81 7 31
  406.  
    93 39 83 6.9 81 8 1
  407.  
    94 9 24 13.8 81 8 2
  408.  
    95 16 77 7.4 82 8 3
  409.  
    96 78 NA 6.9 86 8 4
  410.  
    97 35 NA 7.4 85 8 5
  411.  
    98 66 NA 4.6 87 8 6
  412.  
    99 122 255 4.0 89 8 7
  413.  
    100 89 229 10.3 90 8 8
  414.  
    101 110 207 8.0 90 8 9
  415.  
    102 NA 222 8.6 92 8 10
  416.  
    103 NA 137 11.5 86 8 11
  417.  
    104 44 192 11.5 86 8 12
  418.  
    105 28 273 11.5 82 8 13
  419.  
    106 65 157 9.7 80 8 14
  420.  
    107 NA 64 11.5 79 8 15
  421.  
    108 22 71 10.3 77 8 16
  422.  
    109 59 51 6.3 79 8 17
  423.  
    110 23 115 7.4 76 8 18
  424.  
    111 31 244 10.9 78 8 19
  425.  
    112 44 190 10.3 78 8 20
  426.  
    113 21 259 15.5 77 8 21
  427.  
    114 9 36 14.3 72 8 22
  428.  
    115 NA 255 12.6 75 8 23
  429.  
    116 45 212 9.7 79 8 24
  430.  
    117 168 238 3.4 81 8 25
  431.  
    118 73 215 8.0 86 8 26
  432.  
    119 NA 153 5.7 88 8 27
  433.  
    120 76 203 9.7 97 8 28
  434.  
    121 118 225 2.3 94 8 29
  435.  
    122 84 237 6.3 96 8 30
  436.  
    123 85 188 6.3 94 8 31
  437.  
    124 96 167 6.9 91 9 1
  438.  
    125 78 197 5.1 92 9 2
  439.  
    126 73 183 2.8 93 9 3
  440.  
    127 91 189 4.6 93 9 4
  441.  
    128 47 95 7.4 87 9 5
  442.  
    129 32 92 15.5 84 9 6
  443.  
    130 20 252 10.9 80 9 7
  444.  
    131 23 220 10.3 78 9 8
  445.  
    132 21 230 10.9 75 9 9
  446.  
    133 24 259 9.7 73 9 10
  447.  
    134 44 236 14.9 81 9 11
  448.  
    135 21 259 15.5 76 9 12
  449.  
    136 28 238 6.3 77 9 13
  450.  
    137 9 24 10.9 71 9 14
  451.  
    138 13 112 11.5 71 9 15
  452.  
    139 46 237 6.9 78 9 16
  453.  
    140 18 224 13.8 67 9 17
  454.  
    141 13 27 10.3 76 9 18
  455.  
    142 24 238 10.3 68 9 19
  456.  
    143 16 201 8.0 82 9 20
  457.  
    144 13 238 12.6 64 9 21
  458.  
    145 23 14 9.2 71 9 22
  459.  
    146 36 139 10.3 81 9 23
  460.  
    147 7 49 10.3 69 9 24
  461.  
    148 14 20 16.6 63 9 25
  462.  
    149 30 193 6.9 70 9 26
  463.  
    150 NA 145 13.2 77 9 27
  464.  
    151 14 191 14.3 75 9 28
  465.  
    152 18 131 8.0 76 9 29
  466.  
    153 20 223 11.5 68 9 30
  467.  
    154 100 233 4.2 34 9 20
学新通

二、merge函数

定义:Merge two data frames by common columns or row names

参数:merge(x, y, by = intersect(names(x), names(y)),
      by.x = by, by.y = by, all = FALSE, all.x = all, all.y = all,
      sort = TRUE, suffixes = c(".x",".y"), no.dups = TRUE,
      incomparables = NULL, ...)

x,y:要合并的数据框

by,by.x,by.y:指定依据什么合并数据框,默认为相同colname的列

all,all.x,all.y:指定x和y的行是否应该全部输出

sort by:by后指定的列是否排序

suffixes:指定不用于合并的列中拥有相同列名的后缀

incomparables:指定合并的列中,哪些值不需要进行合并(NULL or NA or 其他)

个人理解:当两个数据框有相同的观测量(rowname或colname相同),但观测量下的观测值不同时,使用merge函数进行合并。通过“by=观测因子”,得到共有的观测值对应的其他观测量。

  1.  
    #我们先构建两组数据框x和y,已知某人的ID、班级、平均分、最高分
  2.  
     
  3.  
    > x <- data.frame(ID=1:5,class=c("一班","二班","二班","一班","二班"),mean= c(45,56,34,45,78))
  4.  
    > x
  5.  
    ID class mean
  6.  
    1 1 一班 45
  7.  
    2 2 二班 56
  8.  
    3 3 二班 34
  9.  
    4 4 一班 45
  10.  
    5 5 二班 78
  11.  
     
  12.  
    > y <- data.frame(ID=4:8,class=c("一班","二班","一班","一班","二班"),max= c(49,68,50,65,90))
  13.  
    > y
  14.  
    ID class max
  15.  
    1 4 一班 49
  16.  
    2 5 二班 68
  17.  
    3 6 一班 50
  18.  
    4 7 一班 65
  19.  
    5 8 二班 90
  20.  
     
  21.  
    #合并class ??????谁能和我解释一下,我不理解这个结果
  22.  
    > d1<-merge(x,y,by="class")
  23.  
    > d1
  24.  
    class ID.x mean ID.y max
  25.  
    1 二班 2 56 5 68
  26.  
    2 二班 2 56 8 90
  27.  
    3 二班 3 34 5 68
  28.  
    4 二班 3 34 8 90
  29.  
    5 二班 5 78 5 68
  30.  
    6 二班 5 78 8 90
  31.  
    7 一班 1 45 4 49
  32.  
    8 一班 1 45 6 50
  33.  
    9 一班 1 45 7 65
  34.  
    10 一班 4 45 4 49
  35.  
    11 一班 4 45 6 50
  36.  
    12 一班 4 45 7 65
  37.  
     
  38.  
    #合并ID
  39.  
    > d2<-merge(x,y,by="ID")
  40.  
    > d2
  41.  
    ID class.x mean class.y max
  42.  
    1 4 一班 45 一班 49
  43.  
    2 5 二班 78 二班 68
  44.  
    > d3<-merge(x,y,by=c("class","ID"))
  45.  
     
  46.  
    #合并class与ID
  47.  
    > d3
  48.  
    class ID mean max
  49.  
    1 二班 5 78 68
  50.  
    2 一班 4 45 49
学新通
  1.  
    > x <- data.frame(ID=1:5,name=c("lily","sam","lucy","sorcha","jeremy"),mean= c(45,56,34,45,78))
  2.  
    > y <- data.frame(ID=2:6,name=c("sam","lucy","sorcha","jeremy","jane"),class= c("二班","一班","一班","二班","二班"))
  3.  
    > x
  4.  
    ID name mean
  5.  
    1 1 lily 45
  6.  
    2 2 sam 56
  7.  
    3 3 lucy 34
  8.  
    4 4 sorcha 45
  9.  
    5 5 jeremy 78
  10.  
    > y
  11.  
    ID name class
  12.  
    1 2 sam 二班
  13.  
    2 3 lucy 一班
  14.  
    3 4 sorcha 一班
  15.  
    4 5 jeremy 二班
  16.  
    5 6 jane 二班
  17.  
     
  18.  
     
  19.  
    > d1<-merge(x,y,by="ID")
  20.  
    > d1
  21.  
    ID name.x mean name.y class
  22.  
    1 2 sam 56 sam 二班
  23.  
    2 3 lucy 34 lucy 一班
  24.  
    3 4 sorcha 45 sorcha 一班
  25.  
    4 5 jeremy 78 jeremy 二班
  26.  
     
  27.  
    > d1<-merge(x,y,by="ID",suffixes=c("1","2"))
  28.  
    > d1
  29.  
    ID name1 mean name2 class
  30.  
    1 2 sam 56 sam 二班
  31.  
    2 3 lucy 34 lucy 一班
  32.  
    3 4 sorcha 45 sorcha 一班
  33.  
    4 5 jeremy 78 jeremy 二班
  34.  
     
  35.  
    > d2<-merge(x,y,by=c("ID","name"))
  36.  
    > d2
  37.  
    ID name mean class
  38.  
    1 2 sam 56 二班
  39.  
    2 3 lucy 34 一班
  40.  
    3 4 sorcha 45 一班
  41.  
    4 5 jeremy 78 二班
  42.  
     
  43.  
    > d3<-merge(x,y,by="class") ???????这里谁能解释一下,上一组数据的class就可以作为合并项,这组为什么不能?
  44.  
    Error in fix.by(by.x, x) : 'by'必需指定唯一有效的列
学新通

三、reshape2包

help(package="reshape2")

 学新通

 melt函数

melt(data, ..., na.rm = FALSE, value.name = "value")

将宽数据变成长数据(数据融合)

  1.  
    用R自带的airquality数据演示
  2.  
     
  3.  
    > head(airquality)
  4.  
    ozone solar.r wind temp month day
  5.  
    1 41 190 7.4 67 5 1
  6.  
    2 36 118 8.0 72 5 2
  7.  
    3 12 149 12.6 74 5 3
  8.  
    4 18 313 11.5 62 5 4
  9.  
    5 NA NA 14.3 56 5 5
  10.  
    6 28 NA 14.9 66 5 6
  11.  
     
  12.  
    #宽数据变成长数据
  13.  
    > head(melt(airquality))
  14.  
    No id variables; using all as measure variables
  15.  
    variable value
  16.  
    1 ozone 41
  17.  
    2 ozone 36
  18.  
    3 ozone 12
  19.  
    4 ozone 18
  20.  
    5 ozone NA
  21.  
    6 ozone 28
  22.  
    #指定不合并的列,将month和day作为索引
  23.  
    > head(melt(airquality,id.vars = c("month","day")))
  24.  
    month day variable value
  25.  
    1 5 1 ozone 41
  26.  
    2 5 2 ozone 36
  27.  
    3 5 3 ozone 12
  28.  
    4 5 4 ozone 18
  29.  
    5 5 5 ozone NA
  30.  
    6 5 6 ozone 28
学新通

dcast、acast函数

将融合后的数据输出,类似数据透视表

dcast(data,formula,fun.aggregate = NULL,...,margins = NULL,subset = NULL,                                fill = NULL,drop = TRUE,value.var = guess_value(data))

acast(data,formula,fun.aggregate = NULL,...,margins = NULL,subset = NULL,                                fill = NULL,drop = TRUE,value.var = guess_value(data)

data   molten data frame 
formula  casting formula(计算公式)
fun.aggregate   aggregation function needed if variables do not identify a single observation for each output cell.
...  further arguments are passed to aggregating function
margins  vector of variable names (can include "grand\_col" and "grand\_row") to compute margins for, or TRUE to compute all margins . Any variables that can not be margined over will be silently dropped.
subset     quoted expression used to subset data prior to reshaping, e.g. subset = .(variable=="length").
fill value with which to fill in structural missings, defaults to value from applying fun.aggregate to 0 length vector
drop  should missing combinations dropped or kept?
value.var name of column which stores values, see guess_value for default strategies to figure this out.
  1.  
    aqm <- melt(airquality, id=c("month", "day"), na.rm=TRUE)
  2.  
    > head(aqm)
  3.  
    month day variable value
  4.  
    1 5 1 ozone 41
  5.  
    2 5 2 ozone 36
  6.  
    3 5 3 ozone 12
  7.  
    4 5 4 ozone 18
  8.  
    6 5 6 ozone 28
  9.  
    7 5 7 ozone 23
  10.  
    > aqw <- acast(aqm, day ~ month ~ variable)
  11.  
    > aqw
  12.  
    , , ozone
  13.  
     
  14.  
    5 6 7 8 9
  15.  
    1 41 NA 135 39 96
  16.  
    2 36 NA 49 9 78
  17.  
    3 12 NA 32 16 73
  18.  
    4 18 NA NA 78 91
  19.  
    5 NA NA 64 35 47
  20.  
    6 28 NA 40 66 32
  21.  
    7 23 29 77 122 20
  22.  
    8 19 NA 97 89 23
  23.  
    9 8 71 97 110 21
  24.  
    10 NA 39 85 NA 24
  25.  
    11 7 NA NA NA 44
  26.  
    12 16 NA 10 44 21
  27.  
    13 11 23 27 28 28
  28.  
    14 14 NA NA 65 9
  29.  
    15 18 NA 7 NA 13
  30.  
    16 14 21 48 22 46
  31.  
    17 34 37 35 59 18
  32.  
    18 6 20 61 23 13
  33.  
    19 30 12 79 31 24
  34.  
    20 11 13 63 44 16
  35.  
    21 1 NA 16 21 13
  36.  
    22 11 NA NA 9 23
  37.  
    23 4 NA NA NA 36
  38.  
    24 32 NA 80 45 7
  39.  
    25 NA NA 108 168 14
  40.  
    26 NA NA 20 73 30
  41.  
    27 NA NA 52 NA NA
  42.  
    28 23 NA 82 76 14
  43.  
    29 45 NA 50 118 18
  44.  
    30 115 NA 64 84 20
  45.  
    31 37 NA 59 85 NA
  46.  
     
  47.  
    , , solar.r
  48.  
     
  49.  
    5 6 7 8 9
  50.  
    1 190 286 269 83 167
  51.  
    2 118 287 248 24 197
  52.  
    3 149 242 236 77 183
  53.  
    4 313 186 101 NA 189
  54.  
    5 NA 220 175 NA 95
  55.  
    6 NA 264 314 NA 92
  56.  
    7 299 127 276 255 252
  57.  
    8 99 273 267 229 220
  58.  
    9 19 291 272 207 230
  59.  
    10 194 323 175 222 259
  60.  
    11 NA 259 139 137 236
  61.  
    12 256 250 264 192 259
  62.  
    13 290 148 175 273 238
  63.  
    14 274 332 291 157 24
  64.  
    15 65 322 48 64 112
  65.  
    16 334 191 260 71 237
  66.  
    17 307 284 274 51 224
  67.  
    18 78 37 285 115 27
  68.  
    19 322 120 187 244 238
  69.  
    20 44 137 220 190 201
  70.  
    21 8 150 7 259 238
  71.  
    22 320 59 258 36 14
  72.  
    23 25 91 295 255 139
  73.  
    24 92 250 294 212 49
  74.  
    25 66 135 223 238 20
  75.  
    26 266 127 81 215 193
  76.  
    27 NA 47 82 153 145
  77.  
    28 13 98 213 203 191
  78.  
    29 252 31 275 225 131
  79.  
    30 223 138 253 237 223
  80.  
    31 279 NA 254 188 NA
  81.  
     
  82.  
    , , wind
  83.  
     
  84.  
    5 6 7 8 9
  85.  
    1 7.4 8.6 4.1 6.9 6.9
  86.  
    2 8.0 9.7 9.2 13.8 5.1
  87.  
    3 12.6 16.1 9.2 7.4 2.8
  88.  
    4 11.5 9.2 10.9 6.9 4.6
  89.  
    5 14.3 8.6 4.6 7.4 7.4
  90.  
    6 14.9 14.3 10.9 4.6 15.5
  91.  
    7 8.6 9.7 5.1 4.0 10.9
  92.  
    8 13.8 6.9 6.3 10.3 10.3
  93.  
    9 20.1 13.8 5.7 8.0 10.9
  94.  
    10 8.6 11.5 7.4 8.6 9.7
  95.  
    11 6.9 10.9 8.6 11.5 14.9
  96.  
    12 9.7 9.2 14.3 11.5 15.5
  97.  
    13 9.2 8.0 14.9 11.5 6.3
  98.  
    14 10.9 13.8 14.9 9.7 10.9
  99.  
    15 13.2 11.5 14.3 11.5 11.5
  100.  
    16 11.5 14.9 6.9 10.3 6.9
  101.  
    17 12.0 20.7 10.3 6.3 13.8
  102.  
    18 18.4 9.2 6.3 7.4 10.3
  103.  
    19 11.5 11.5 5.1 10.9 10.3
  104.  
    20 9.7 10.3 11.5 10.3 8.0
  105.  
    21 9.7 6.3 6.9 15.5 12.6
  106.  
    22 16.6 1.7 9.7 14.3 9.2
  107.  
    23 9.7 4.6 11.5 12.6 10.3
  108.  
    24 12.0 6.3 8.6 9.7 10.3
  109.  
    25 16.6 8.0 8.0 3.4 16.6
  110.  
    26 14.9 8.0 8.6 8.0 6.9
  111.  
    27 8.0 10.3 12.0 5.7 13.2
  112.  
    28 12.0 11.5 7.4 9.7 14.3
  113.  
    29 14.9 14.9 7.4 2.3 8.0
  114.  
    30 5.7 8.0 7.4 6.3 11.5
  115.  
    31 7.4 NA 9.2 6.3 NA
  116.  
     
  117.  
    , , temp
  118.  
     
  119.  
    5 6 7 8 9
  120.  
    1 67 78 84 81 91
  121.  
    2 72 74 85 81 92
  122.  
    3 74 67 81 82 93
  123.  
    4 62 84 84 86 93
  124.  
    5 56 85 83 85 87
  125.  
    6 66 79 83 87 84
  126.  
    7 65 82 88 89 80
  127.  
    8 59 87 92 90 78
  128.  
    9 61 90 92 90 75
  129.  
    10 69 87 89 92 73
  130.  
    11 74 93 82 86 81
  131.  
    12 69 92 73 86 76
  132.  
    13 66 82 81 82 77
  133.  
    14 68 80 91 80 71
  134.  
    15 58 79 80 79 71
  135.  
    16 64 77 81 77 78
  136.  
    17 66 72 82 79 67
  137.  
    18 57 65 84 76 76
  138.  
    19 68 73 87 78 68
  139.  
    20 62 76 85 78 82
  140.  
    21 59 77 74 77 64
  141.  
    22 73 76 81 72 71
  142.  
    23 61 76 82 75 81
  143.  
    24 61 76 86 79 69
  144.  
    25 57 75 85 81 63
  145.  
    26 58 78 82 86 70
  146.  
    27 57 73 86 88 77
  147.  
    28 67 80 88 97 75
  148.  
    29 81 77 86 94 76
  149.  
    30 79 83 83 96 68
  150.  
    31 76 NA 81 94 NA
学新通
  1.  
    > acast(aqm, month ~ variable, sum, margins = TRUE)
  2.  
    ozone solar.r wind temp (all)
  3.  
    5 614 4895 360.3 2032 7901.3
  4.  
    6 265 5705 308.0 2373 8651.0
  5.  
    7 1537 6711 277.2 2601 11126.2
  6.  
    8 1559 4812 272.6 2603 9246.6
  7.  
    9 912 5023 305.4 2307 8547.4
  8.  
    (all) 4887 27146 1523.5 11916 45472.5

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhggjhkg
系列文章
更多 icon
同类精品
更多 icon
继续加载