R语言入门23-数据处理:reshape2包
目录
一、rbind与cbind函数
cbind:将m列数据与n列数据合并,最终得到一个m n列的数据。
使用前提是:cbind(x,y)中的矩阵x,y的行数必需相同。
rbind:将m行数据与n行数据合并,最终得到一个m n行的数据。
使用前提是:cbind(x,y)中的矩阵x,y的列数必需相同。
-
#我们使用R自带的airqualty做演示
-
-
> airquality
-
ozone solar.r wind temp month day
-
1 41 190 7.4 67 5 1
-
2 36 118 8.0 72 5 2
-
3 12 149 12.6 74 5 3
-
4 18 313 11.5 62 5 4
-
5 NA NA 14.3 56 5 5
-
6 28 NA 14.9 66 5 6
-
7 23 299 8.6 65 5 7
-
8 19 99 13.8 59 5 8
-
9 8 19 20.1 61 5 9
-
10 NA 194 8.6 69 5 10
-
11 7 NA 6.9 74 5 11
-
12 16 256 9.7 69 5 12
-
13 11 290 9.2 66 5 13
-
14 14 274 10.9 68 5 14
-
15 18 65 13.2 58 5 15
-
16 14 334 11.5 64 5 16
-
17 34 307 12.0 66 5 17
-
18 6 78 18.4 57 5 18
-
19 30 322 11.5 68 5 19
-
20 11 44 9.7 62 5 20
-
21 1 8 9.7 59 5 21
-
22 11 320 16.6 73 5 22
-
23 4 25 9.7 61 5 23
-
24 32 92 12.0 61 5 24
-
25 NA 66 16.6 57 5 25
-
26 NA 266 14.9 58 5 26
-
27 NA NA 8.0 57 5 27
-
28 23 13 12.0 67 5 28
-
29 45 252 14.9 81 5 29
-
30 115 223 5.7 79 5 30
-
31 37 279 7.4 76 5 31
-
32 NA 286 8.6 78 6 1
-
33 NA 287 9.7 74 6 2
-
34 NA 242 16.1 67 6 3
-
35 NA 186 9.2 84 6 4
-
36 NA 220 8.6 85 6 5
-
37 NA 264 14.3 79 6 6
-
38 29 127 9.7 82 6 7
-
39 NA 273 6.9 87 6 8
-
40 71 291 13.8 90 6 9
-
41 39 323 11.5 87 6 10
-
42 NA 259 10.9 93 6 11
-
43 NA 250 9.2 92 6 12
-
44 23 148 8.0 82 6 13
-
45 NA 332 13.8 80 6 14
-
46 NA 322 11.5 79 6 15
-
47 21 191 14.9 77 6 16
-
48 37 284 20.7 72 6 17
-
49 20 37 9.2 65 6 18
-
50 12 120 11.5 73 6 19
-
51 13 137 10.3 76 6 20
-
52 NA 150 6.3 77 6 21
-
53 NA 59 1.7 76 6 22
-
54 NA 91 4.6 76 6 23
-
55 NA 250 6.3 76 6 24
-
56 NA 135 8.0 75 6 25
-
57 NA 127 8.0 78 6 26
-
58 NA 47 10.3 73 6 27
-
59 NA 98 11.5 80 6 28
-
60 NA 31 14.9 77 6 29
-
61 NA 138 8.0 83 6 30
-
62 135 269 4.1 84 7 1
-
63 49 248 9.2 85 7 2
-
64 32 236 9.2 81 7 3
-
65 NA 101 10.9 84 7 4
-
66 64 175 4.6 83 7 5
-
67 40 314 10.9 83 7 6
-
68 77 276 5.1 88 7 7
-
69 97 267 6.3 92 7 8
-
70 97 272 5.7 92 7 9
-
71 85 175 7.4 89 7 10
-
72 NA 139 8.6 82 7 11
-
73 10 264 14.3 73 7 12
-
74 27 175 14.9 81 7 13
-
75 NA 291 14.9 91 7 14
-
76 7 48 14.3 80 7 15
-
77 48 260 6.9 81 7 16
-
78 35 274 10.3 82 7 17
-
79 61 285 6.3 84 7 18
-
80 79 187 5.1 87 7 19
-
81 63 220 11.5 85 7 20
-
82 16 7 6.9 74 7 21
-
83 NA 258 9.7 81 7 22
-
84 NA 295 11.5 82 7 23
-
85 80 294 8.6 86 7 24
-
86 108 223 8.0 85 7 25
-
87 20 81 8.6 82 7 26
-
88 52 82 12.0 86 7 27
-
89 82 213 7.4 88 7 28
-
90 50 275 7.4 86 7 29
-
91 64 253 7.4 83 7 30
-
92 59 254 9.2 81 7 31
-
93 39 83 6.9 81 8 1
-
94 9 24 13.8 81 8 2
-
95 16 77 7.4 82 8 3
-
96 78 NA 6.9 86 8 4
-
97 35 NA 7.4 85 8 5
-
98 66 NA 4.6 87 8 6
-
99 122 255 4.0 89 8 7
-
100 89 229 10.3 90 8 8
-
101 110 207 8.0 90 8 9
-
102 NA 222 8.6 92 8 10
-
103 NA 137 11.5 86 8 11
-
104 44 192 11.5 86 8 12
-
105 28 273 11.5 82 8 13
-
106 65 157 9.7 80 8 14
-
107 NA 64 11.5 79 8 15
-
108 22 71 10.3 77 8 16
-
109 59 51 6.3 79 8 17
-
110 23 115 7.4 76 8 18
-
111 31 244 10.9 78 8 19
-
112 44 190 10.3 78 8 20
-
113 21 259 15.5 77 8 21
-
114 9 36 14.3 72 8 22
-
115 NA 255 12.6 75 8 23
-
116 45 212 9.7 79 8 24
-
117 168 238 3.4 81 8 25
-
118 73 215 8.0 86 8 26
-
119 NA 153 5.7 88 8 27
-
120 76 203 9.7 97 8 28
-
121 118 225 2.3 94 8 29
-
122 84 237 6.3 96 8 30
-
123 85 188 6.3 94 8 31
-
124 96 167 6.9 91 9 1
-
125 78 197 5.1 92 9 2
-
126 73 183 2.8 93 9 3
-
127 91 189 4.6 93 9 4
-
128 47 95 7.4 87 9 5
-
129 32 92 15.5 84 9 6
-
130 20 252 10.9 80 9 7
-
131 23 220 10.3 78 9 8
-
132 21 230 10.9 75 9 9
-
133 24 259 9.7 73 9 10
-
134 44 236 14.9 81 9 11
-
135 21 259 15.5 76 9 12
-
136 28 238 6.3 77 9 13
-
137 9 24 10.9 71 9 14
-
138 13 112 11.5 71 9 15
-
139 46 237 6.9 78 9 16
-
140 18 224 13.8 67 9 17
-
141 13 27 10.3 76 9 18
-
142 24 238 10.3 68 9 19
-
143 16 201 8.0 82 9 20
-
144 13 238 12.6 64 9 21
-
145 23 14 9.2 71 9 22
-
146 36 139 10.3 81 9 23
-
147 7 49 10.3 69 9 24
-
148 14 20 16.6 63 9 25
-
149 30 193 6.9 70 9 26
-
150 NA 145 13.2 77 9 27
-
151 14 191 14.3 75 9 28
-
152 18 131 8.0 76 9 29
-
153 20 223 11.5 68 9 30
-
-
#现在想要在数据基础上加一列数据(ID:153*1的矩阵)
-
> ID <- c(1:153)
-
> data1 <- cbind(airquality,ID)
-
> data1 #加入后的结果
-
ozone solar.r wind temp month day ID
-
1 41 190 7.4 67 5 1 1
-
2 36 118 8.0 72 5 2 2
-
3 12 149 12.6 74 5 3 3
-
4 18 313 11.5 62 5 4 4
-
5 NA NA 14.3 56 5 5 5
-
6 28 NA 14.9 66 5 6 6
-
7 23 299 8.6 65 5 7 7
-
8 19 99 13.8 59 5 8 8
-
9 8 19 20.1 61 5 9 9
-
10 NA 194 8.6 69 5 10 10
-
11 7 NA 6.9 74 5 11 11
-
12 16 256 9.7 69 5 12 12
-
13 11 290 9.2 66 5 13 13
-
14 14 274 10.9 68 5 14 14
-
15 18 65 13.2 58 5 15 15
-
16 14 334 11.5 64 5 16 16
-
17 34 307 12.0 66 5 17 17
-
18 6 78 18.4 57 5 18 18
-
19 30 322 11.5 68 5 19 19
-
20 11 44 9.7 62 5 20 20
-
21 1 8 9.7 59 5 21 21
-
22 11 320 16.6 73 5 22 22
-
23 4 25 9.7 61 5 23 23
-
24 32 92 12.0 61 5 24 24
-
25 NA 66 16.6 57 5 25 25
-
26 NA 266 14.9 58 5 26 26
-
27 NA NA 8.0 57 5 27 27
-
28 23 13 12.0 67 5 28 28
-
29 45 252 14.9 81 5 29 29
-
30 115 223 5.7 79 5 30 30
-
31 37 279 7.4 76 5 31 31
-
32 NA 286 8.6 78 6 1 32
-
33 NA 287 9.7 74 6 2 33
-
34 NA 242 16.1 67 6 3 34
-
35 NA 186 9.2 84 6 4 35
-
36 NA 220 8.6 85 6 5 36
-
37 NA 264 14.3 79 6 6 37
-
38 29 127 9.7 82 6 7 38
-
39 NA 273 6.9 87 6 8 39
-
40 71 291 13.8 90 6 9 40
-
41 39 323 11.5 87 6 10 41
-
42 NA 259 10.9 93 6 11 42
-
43 NA 250 9.2 92 6 12 43
-
44 23 148 8.0 82 6 13 44
-
45 NA 332 13.8 80 6 14 45
-
46 NA 322 11.5 79 6 15 46
-
47 21 191 14.9 77 6 16 47
-
48 37 284 20.7 72 6 17 48
-
49 20 37 9.2 65 6 18 49
-
50 12 120 11.5 73 6 19 50
-
51 13 137 10.3 76 6 20 51
-
52 NA 150 6.3 77 6 21 52
-
53 NA 59 1.7 76 6 22 53
-
54 NA 91 4.6 76 6 23 54
-
55 NA 250 6.3 76 6 24 55
-
56 NA 135 8.0 75 6 25 56
-
57 NA 127 8.0 78 6 26 57
-
58 NA 47 10.3 73 6 27 58
-
59 NA 98 11.5 80 6 28 59
-
60 NA 31 14.9 77 6 29 60
-
61 NA 138 8.0 83 6 30 61
-
62 135 269 4.1 84 7 1 62
-
63 49 248 9.2 85 7 2 63
-
64 32 236 9.2 81 7 3 64
-
65 NA 101 10.9 84 7 4 65
-
66 64 175 4.6 83 7 5 66
-
67 40 314 10.9 83 7 6 67
-
68 77 276 5.1 88 7 7 68
-
69 97 267 6.3 92 7 8 69
-
70 97 272 5.7 92 7 9 70
-
71 85 175 7.4 89 7 10 71
-
72 NA 139 8.6 82 7 11 72
-
73 10 264 14.3 73 7 12 73
-
74 27 175 14.9 81 7 13 74
-
75 NA 291 14.9 91 7 14 75
-
76 7 48 14.3 80 7 15 76
-
77 48 260 6.9 81 7 16 77
-
78 35 274 10.3 82 7 17 78
-
79 61 285 6.3 84 7 18 79
-
80 79 187 5.1 87 7 19 80
-
81 63 220 11.5 85 7 20 81
-
82 16 7 6.9 74 7 21 82
-
83 NA 258 9.7 81 7 22 83
-
84 NA 295 11.5 82 7 23 84
-
85 80 294 8.6 86 7 24 85
-
86 108 223 8.0 85 7 25 86
-
87 20 81 8.6 82 7 26 87
-
88 52 82 12.0 86 7 27 88
-
89 82 213 7.4 88 7 28 89
-
90 50 275 7.4 86 7 29 90
-
91 64 253 7.4 83 7 30 91
-
92 59 254 9.2 81 7 31 92
-
93 39 83 6.9 81 8 1 93
-
94 9 24 13.8 81 8 2 94
-
95 16 77 7.4 82 8 3 95
-
96 78 NA 6.9 86 8 4 96
-
97 35 NA 7.4 85 8 5 97
-
98 66 NA 4.6 87 8 6 98
-
99 122 255 4.0 89 8 7 99
-
100 89 229 10.3 90 8 8 100
-
101 110 207 8.0 90 8 9 101
-
102 NA 222 8.6 92 8 10 102
-
103 NA 137 11.5 86 8 11 103
-
104 44 192 11.5 86 8 12 104
-
105 28 273 11.5 82 8 13 105
-
106 65 157 9.7 80 8 14 106
-
107 NA 64 11.5 79 8 15 107
-
108 22 71 10.3 77 8 16 108
-
109 59 51 6.3 79 8 17 109
-
110 23 115 7.4 76 8 18 110
-
111 31 244 10.9 78 8 19 111
-
112 44 190 10.3 78 8 20 112
-
113 21 259 15.5 77 8 21 113
-
114 9 36 14.3 72 8 22 114
-
115 NA 255 12.6 75 8 23 115
-
116 45 212 9.7 79 8 24 116
-
117 168 238 3.4 81 8 25 117
-
118 73 215 8.0 86 8 26 118
-
119 NA 153 5.7 88 8 27 119
-
120 76 203 9.7 97 8 28 120
-
121 118 225 2.3 94 8 29 121
-
122 84 237 6.3 96 8 30 122
-
123 85 188 6.3 94 8 31 123
-
124 96 167 6.9 91 9 1 124
-
125 78 197 5.1 92 9 2 125
-
126 73 183 2.8 93 9 3 126
-
127 91 189 4.6 93 9 4 127
-
128 47 95 7.4 87 9 5 128
-
129 32 92 15.5 84 9 6 129
-
130 20 252 10.9 80 9 7 130
-
131 23 220 10.3 78 9 8 131
-
132 21 230 10.9 75 9 9 132
-
133 24 259 9.7 73 9 10 133
-
134 44 236 14.9 81 9 11 134
-
135 21 259 15.5 76 9 12 135
-
136 28 238 6.3 77 9 13 136
-
137 9 24 10.9 71 9 14 137
-
138 13 112 11.5 71 9 15 138
-
139 46 237 6.9 78 9 16 139
-
140 18 224 13.8 67 9 17 140
-
141 13 27 10.3 76 9 18 141
-
142 24 238 10.3 68 9 19 142
-
[ reached 'max' / getOption("max.print") -- omitted 11 rows ]
-
-
-
#假设现在想要在以上基础上再加入一行数据(d143:1*6的矩阵)
-
> d143 <- c(100,233,4.2,34,9,20,143)
-
> data2 <- rbind(airquality,d143)
-
> data2 #加入后的结果
-
ozone solar.r wind temp month day
-
1 41 190 7.4 67 5 1
-
2 36 118 8.0 72 5 2
-
3 12 149 12.6 74 5 3
-
4 18 313 11.5 62 5 4
-
5 NA NA 14.3 56 5 5
-
6 28 NA 14.9 66 5 6
-
7 23 299 8.6 65 5 7
-
8 19 99 13.8 59 5 8
-
9 8 19 20.1 61 5 9
-
10 NA 194 8.6 69 5 10
-
11 7 NA 6.9 74 5 11
-
12 16 256 9.7 69 5 12
-
13 11 290 9.2 66 5 13
-
14 14 274 10.9 68 5 14
-
15 18 65 13.2 58 5 15
-
16 14 334 11.5 64 5 16
-
17 34 307 12.0 66 5 17
-
18 6 78 18.4 57 5 18
-
19 30 322 11.5 68 5 19
-
20 11 44 9.7 62 5 20
-
21 1 8 9.7 59 5 21
-
22 11 320 16.6 73 5 22
-
23 4 25 9.7 61 5 23
-
24 32 92 12.0 61 5 24
-
25 NA 66 16.6 57 5 25
-
26 NA 266 14.9 58 5 26
-
27 NA NA 8.0 57 5 27
-
28 23 13 12.0 67 5 28
-
29 45 252 14.9 81 5 29
-
30 115 223 5.7 79 5 30
-
31 37 279 7.4 76 5 31
-
32 NA 286 8.6 78 6 1
-
33 NA 287 9.7 74 6 2
-
34 NA 242 16.1 67 6 3
-
35 NA 186 9.2 84 6 4
-
36 NA 220 8.6 85 6 5
-
37 NA 264 14.3 79 6 6
-
38 29 127 9.7 82 6 7
-
39 NA 273 6.9 87 6 8
-
40 71 291 13.8 90 6 9
-
41 39 323 11.5 87 6 10
-
42 NA 259 10.9 93 6 11
-
43 NA 250 9.2 92 6 12
-
44 23 148 8.0 82 6 13
-
45 NA 332 13.8 80 6 14
-
46 NA 322 11.5 79 6 15
-
47 21 191 14.9 77 6 16
-
48 37 284 20.7 72 6 17
-
49 20 37 9.2 65 6 18
-
50 12 120 11.5 73 6 19
-
51 13 137 10.3 76 6 20
-
52 NA 150 6.3 77 6 21
-
53 NA 59 1.7 76 6 22
-
54 NA 91 4.6 76 6 23
-
55 NA 250 6.3 76 6 24
-
56 NA 135 8.0 75 6 25
-
57 NA 127 8.0 78 6 26
-
58 NA 47 10.3 73 6 27
-
59 NA 98 11.5 80 6 28
-
60 NA 31 14.9 77 6 29
-
61 NA 138 8.0 83 6 30
-
62 135 269 4.1 84 7 1
-
63 49 248 9.2 85 7 2
-
64 32 236 9.2 81 7 3
-
65 NA 101 10.9 84 7 4
-
66 64 175 4.6 83 7 5
-
67 40 314 10.9 83 7 6
-
68 77 276 5.1 88 7 7
-
69 97 267 6.3 92 7 8
-
70 97 272 5.7 92 7 9
-
71 85 175 7.4 89 7 10
-
72 NA 139 8.6 82 7 11
-
73 10 264 14.3 73 7 12
-
74 27 175 14.9 81 7 13
-
75 NA 291 14.9 91 7 14
-
76 7 48 14.3 80 7 15
-
77 48 260 6.9 81 7 16
-
78 35 274 10.3 82 7 17
-
79 61 285 6.3 84 7 18
-
80 79 187 5.1 87 7 19
-
81 63 220 11.5 85 7 20
-
82 16 7 6.9 74 7 21
-
83 NA 258 9.7 81 7 22
-
84 NA 295 11.5 82 7 23
-
85 80 294 8.6 86 7 24
-
86 108 223 8.0 85 7 25
-
87 20 81 8.6 82 7 26
-
88 52 82 12.0 86 7 27
-
89 82 213 7.4 88 7 28
-
90 50 275 7.4 86 7 29
-
91 64 253 7.4 83 7 30
-
92 59 254 9.2 81 7 31
-
93 39 83 6.9 81 8 1
-
94 9 24 13.8 81 8 2
-
95 16 77 7.4 82 8 3
-
96 78 NA 6.9 86 8 4
-
97 35 NA 7.4 85 8 5
-
98 66 NA 4.6 87 8 6
-
99 122 255 4.0 89 8 7
-
100 89 229 10.3 90 8 8
-
101 110 207 8.0 90 8 9
-
102 NA 222 8.6 92 8 10
-
103 NA 137 11.5 86 8 11
-
104 44 192 11.5 86 8 12
-
105 28 273 11.5 82 8 13
-
106 65 157 9.7 80 8 14
-
107 NA 64 11.5 79 8 15
-
108 22 71 10.3 77 8 16
-
109 59 51 6.3 79 8 17
-
110 23 115 7.4 76 8 18
-
111 31 244 10.9 78 8 19
-
112 44 190 10.3 78 8 20
-
113 21 259 15.5 77 8 21
-
114 9 36 14.3 72 8 22
-
115 NA 255 12.6 75 8 23
-
116 45 212 9.7 79 8 24
-
117 168 238 3.4 81 8 25
-
118 73 215 8.0 86 8 26
-
119 NA 153 5.7 88 8 27
-
120 76 203 9.7 97 8 28
-
121 118 225 2.3 94 8 29
-
122 84 237 6.3 96 8 30
-
123 85 188 6.3 94 8 31
-
124 96 167 6.9 91 9 1
-
125 78 197 5.1 92 9 2
-
126 73 183 2.8 93 9 3
-
127 91 189 4.6 93 9 4
-
128 47 95 7.4 87 9 5
-
129 32 92 15.5 84 9 6
-
130 20 252 10.9 80 9 7
-
131 23 220 10.3 78 9 8
-
132 21 230 10.9 75 9 9
-
133 24 259 9.7 73 9 10
-
134 44 236 14.9 81 9 11
-
135 21 259 15.5 76 9 12
-
136 28 238 6.3 77 9 13
-
137 9 24 10.9 71 9 14
-
138 13 112 11.5 71 9 15
-
139 46 237 6.9 78 9 16
-
140 18 224 13.8 67 9 17
-
141 13 27 10.3 76 9 18
-
142 24 238 10.3 68 9 19
-
143 16 201 8.0 82 9 20
-
144 13 238 12.6 64 9 21
-
145 23 14 9.2 71 9 22
-
146 36 139 10.3 81 9 23
-
147 7 49 10.3 69 9 24
-
148 14 20 16.6 63 9 25
-
149 30 193 6.9 70 9 26
-
150 NA 145 13.2 77 9 27
-
151 14 191 14.3 75 9 28
-
152 18 131 8.0 76 9 29
-
153 20 223 11.5 68 9 30
-
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=观测因子”,得到共有的观测值对应的其他观测量。
-
#我们先构建两组数据框x和y,已知某人的ID、班级、平均分、最高分
-
-
> x <- data.frame(ID=1:5,class=c("一班","二班","二班","一班","二班"),mean= c(45,56,34,45,78))
-
> x
-
ID class mean
-
1 1 一班 45
-
2 2 二班 56
-
3 3 二班 34
-
4 4 一班 45
-
5 5 二班 78
-
-
> y <- data.frame(ID=4:8,class=c("一班","二班","一班","一班","二班"),max= c(49,68,50,65,90))
-
> y
-
ID class max
-
1 4 一班 49
-
2 5 二班 68
-
3 6 一班 50
-
4 7 一班 65
-
5 8 二班 90
-
-
#合并class ??????谁能和我解释一下,我不理解这个结果
-
> d1<-merge(x,y,by="class")
-
> d1
-
class ID.x mean ID.y max
-
1 二班 2 56 5 68
-
2 二班 2 56 8 90
-
3 二班 3 34 5 68
-
4 二班 3 34 8 90
-
5 二班 5 78 5 68
-
6 二班 5 78 8 90
-
7 一班 1 45 4 49
-
8 一班 1 45 6 50
-
9 一班 1 45 7 65
-
10 一班 4 45 4 49
-
11 一班 4 45 6 50
-
12 一班 4 45 7 65
-
-
#合并ID
-
> d2<-merge(x,y,by="ID")
-
> d2
-
ID class.x mean class.y max
-
1 4 一班 45 一班 49
-
2 5 二班 78 二班 68
-
> d3<-merge(x,y,by=c("class","ID"))
-
-
#合并class与ID
-
> d3
-
class ID mean max
-
1 二班 5 78 68
-
2 一班 4 45 49
-
> x <- data.frame(ID=1:5,name=c("lily","sam","lucy","sorcha","jeremy"),mean= c(45,56,34,45,78))
-
> y <- data.frame(ID=2:6,name=c("sam","lucy","sorcha","jeremy","jane"),class= c("二班","一班","一班","二班","二班"))
-
> x
-
ID name mean
-
1 1 lily 45
-
2 2 sam 56
-
3 3 lucy 34
-
4 4 sorcha 45
-
5 5 jeremy 78
-
> y
-
ID name class
-
1 2 sam 二班
-
2 3 lucy 一班
-
3 4 sorcha 一班
-
4 5 jeremy 二班
-
5 6 jane 二班
-
-
-
> d1<-merge(x,y,by="ID")
-
> d1
-
ID name.x mean name.y class
-
1 2 sam 56 sam 二班
-
2 3 lucy 34 lucy 一班
-
3 4 sorcha 45 sorcha 一班
-
4 5 jeremy 78 jeremy 二班
-
-
> d1<-merge(x,y,by="ID",suffixes=c("1","2"))
-
> d1
-
ID name1 mean name2 class
-
1 2 sam 56 sam 二班
-
2 3 lucy 34 lucy 一班
-
3 4 sorcha 45 sorcha 一班
-
4 5 jeremy 78 jeremy 二班
-
-
> d2<-merge(x,y,by=c("ID","name"))
-
> d2
-
ID name mean class
-
1 2 sam 56 二班
-
2 3 lucy 34 一班
-
3 4 sorcha 45 一班
-
4 5 jeremy 78 二班
-
-
> d3<-merge(x,y,by="class") ???????这里谁能解释一下,上一组数据的class就可以作为合并项,这组为什么不能?
-
Error in fix.by(by.x, x) : 'by'必需指定唯一有效的列
三、reshape2包
help(package="reshape2")
melt函数
melt(data, ..., na.rm = FALSE, value.name = "value")
将宽数据变成长数据(数据融合)
-
用R自带的airquality数据演示
-
-
> head(airquality)
-
ozone solar.r wind temp month day
-
1 41 190 7.4 67 5 1
-
2 36 118 8.0 72 5 2
-
3 12 149 12.6 74 5 3
-
4 18 313 11.5 62 5 4
-
5 NA NA 14.3 56 5 5
-
6 28 NA 14.9 66 5 6
-
-
#宽数据变成长数据
-
> head(melt(airquality))
-
No id variables; using all as measure variables
-
variable value
-
1 ozone 41
-
2 ozone 36
-
3 ozone 12
-
4 ozone 18
-
5 ozone NA
-
6 ozone 28
-
#指定不合并的列,将month和day作为索引
-
> head(melt(airquality,id.vars = c("month","day")))
-
month day variable value
-
1 5 1 ozone 41
-
2 5 2 ozone 36
-
3 5 3 ozone 12
-
4 5 4 ozone 18
-
5 5 5 ozone NA
-
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.
-
aqm <- melt(airquality, id=c("month", "day"), na.rm=TRUE)
-
> head(aqm)
-
month day variable value
-
1 5 1 ozone 41
-
2 5 2 ozone 36
-
3 5 3 ozone 12
-
4 5 4 ozone 18
-
6 5 6 ozone 28
-
7 5 7 ozone 23
-
> aqw <- acast(aqm, day ~ month ~ variable)
-
> aqw
-
, , ozone
-
-
5 6 7 8 9
-
1 41 NA 135 39 96
-
2 36 NA 49 9 78
-
3 12 NA 32 16 73
-
4 18 NA NA 78 91
-
5 NA NA 64 35 47
-
6 28 NA 40 66 32
-
7 23 29 77 122 20
-
8 19 NA 97 89 23
-
9 8 71 97 110 21
-
10 NA 39 85 NA 24
-
11 7 NA NA NA 44
-
12 16 NA 10 44 21
-
13 11 23 27 28 28
-
14 14 NA NA 65 9
-
15 18 NA 7 NA 13
-
16 14 21 48 22 46
-
17 34 37 35 59 18
-
18 6 20 61 23 13
-
19 30 12 79 31 24
-
20 11 13 63 44 16
-
21 1 NA 16 21 13
-
22 11 NA NA 9 23
-
23 4 NA NA NA 36
-
24 32 NA 80 45 7
-
25 NA NA 108 168 14
-
26 NA NA 20 73 30
-
27 NA NA 52 NA NA
-
28 23 NA 82 76 14
-
29 45 NA 50 118 18
-
30 115 NA 64 84 20
-
31 37 NA 59 85 NA
-
-
, , solar.r
-
-
5 6 7 8 9
-
1 190 286 269 83 167
-
2 118 287 248 24 197
-
3 149 242 236 77 183
-
4 313 186 101 NA 189
-
5 NA 220 175 NA 95
-
6 NA 264 314 NA 92
-
7 299 127 276 255 252
-
8 99 273 267 229 220
-
9 19 291 272 207 230
-
10 194 323 175 222 259
-
11 NA 259 139 137 236
-
12 256 250 264 192 259
-
13 290 148 175 273 238
-
14 274 332 291 157 24
-
15 65 322 48 64 112
-
16 334 191 260 71 237
-
17 307 284 274 51 224
-
18 78 37 285 115 27
-
19 322 120 187 244 238
-
20 44 137 220 190 201
-
21 8 150 7 259 238
-
22 320 59 258 36 14
-
23 25 91 295 255 139
-
24 92 250 294 212 49
-
25 66 135 223 238 20
-
26 266 127 81 215 193
-
27 NA 47 82 153 145
-
28 13 98 213 203 191
-
29 252 31 275 225 131
-
30 223 138 253 237 223
-
31 279 NA 254 188 NA
-
-
, , wind
-
-
5 6 7 8 9
-
1 7.4 8.6 4.1 6.9 6.9
-
2 8.0 9.7 9.2 13.8 5.1
-
3 12.6 16.1 9.2 7.4 2.8
-
4 11.5 9.2 10.9 6.9 4.6
-
5 14.3 8.6 4.6 7.4 7.4
-
6 14.9 14.3 10.9 4.6 15.5
-
7 8.6 9.7 5.1 4.0 10.9
-
8 13.8 6.9 6.3 10.3 10.3
-
9 20.1 13.8 5.7 8.0 10.9
-
10 8.6 11.5 7.4 8.6 9.7
-
11 6.9 10.9 8.6 11.5 14.9
-
12 9.7 9.2 14.3 11.5 15.5
-
13 9.2 8.0 14.9 11.5 6.3
-
14 10.9 13.8 14.9 9.7 10.9
-
15 13.2 11.5 14.3 11.5 11.5
-
16 11.5 14.9 6.9 10.3 6.9
-
17 12.0 20.7 10.3 6.3 13.8
-
18 18.4 9.2 6.3 7.4 10.3
-
19 11.5 11.5 5.1 10.9 10.3
-
20 9.7 10.3 11.5 10.3 8.0
-
21 9.7 6.3 6.9 15.5 12.6
-
22 16.6 1.7 9.7 14.3 9.2
-
23 9.7 4.6 11.5 12.6 10.3
-
24 12.0 6.3 8.6 9.7 10.3
-
25 16.6 8.0 8.0 3.4 16.6
-
26 14.9 8.0 8.6 8.0 6.9
-
27 8.0 10.3 12.0 5.7 13.2
-
28 12.0 11.5 7.4 9.7 14.3
-
29 14.9 14.9 7.4 2.3 8.0
-
30 5.7 8.0 7.4 6.3 11.5
-
31 7.4 NA 9.2 6.3 NA
-
-
, , temp
-
-
5 6 7 8 9
-
1 67 78 84 81 91
-
2 72 74 85 81 92
-
3 74 67 81 82 93
-
4 62 84 84 86 93
-
5 56 85 83 85 87
-
6 66 79 83 87 84
-
7 65 82 88 89 80
-
8 59 87 92 90 78
-
9 61 90 92 90 75
-
10 69 87 89 92 73
-
11 74 93 82 86 81
-
12 69 92 73 86 76
-
13 66 82 81 82 77
-
14 68 80 91 80 71
-
15 58 79 80 79 71
-
16 64 77 81 77 78
-
17 66 72 82 79 67
-
18 57 65 84 76 76
-
19 68 73 87 78 68
-
20 62 76 85 78 82
-
21 59 77 74 77 64
-
22 73 76 81 72 71
-
23 61 76 82 75 81
-
24 61 76 86 79 69
-
25 57 75 85 81 63
-
26 58 78 82 86 70
-
27 57 73 86 88 77
-
28 67 80 88 97 75
-
29 81 77 86 94 76
-
30 79 83 83 96 68
-
31 76 NA 81 94 NA
-
> acast(aqm, month ~ variable, sum, margins = TRUE)
-
ozone solar.r wind temp (all)
-
5 614 4895 360.3 2032 7901.3
-
6 265 5705 308.0 2373 8651.0
-
7 1537 6711 277.2 2601 11126.2
-
8 1559 4812 272.6 2603 9246.6
-
9 912 5023 305.4 2307 8547.4
-
(all) 4887 27146 1523.5 11916 45472.5
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhggjhkg
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13