重塑2熔体不产生所有对 [英] reshape2 melt not producing all pairs
问题描述
我有一个332 x 332距离矩阵,其中所有可能的站点对之间都有距离.我需要将此矩阵转换为具有三列的data.frame-start.id,end.id和distance.
I have a 332 x 332 distance matrix with distances between all possible pairs of stations. I need to transform this matrix into a data.frame with three columns - start.id, end.id, and distance.
我已经尝试过reshape2
包中的melt
函数,但这不能给出正确的结果
I have tried the melt
function from the reshape2
package but this is not giving the right result
这是数据的片段
mat
72 79 82 83 116 119 120 127 128 137 143 144 146 147 150 151 152 153 157 160 161
72 NA 6.43 7.458 11.546 3.784 10.252 12.780 4.835 5.230 2.168 10.614 9.806 7.058 6.533 7.117 6.300 6.693 2.595 10.665 3.280 5.338
79 NA NA 1.406 5.442 2.956 4.317 7.300 1.695 1.525 6.673 4.510 4.616 0.426 0.775 3.460 1.296 0.589 5.257 4.561 4.785 1.571
82 NA NA NA 5.656 4.101 4.213 7.152 2.840 2.554 6.410 4.601 3.767 1.447 1.796 2.694 1.400 1.610 5.947 4.652 5.452 2.495
83 NA NA NA NA 8.447 1.736 2.170 7.347 6.782 11.050 1.958 1.888 5.005 5.192 6.826 5.599 5.039 10.175 2.426 9.226 6.723
116 NA NA NA NA NA 7.156 9.684 1.739 2.134 4.741 7.860 6.710 3.359 3.779 4.626 3.204 3.939 3.327 7.911 3.702 2.242
119 NA NA NA NA NA NA 2.970 6.158 5.593 9.861 2.397 0.699 4.209 4.396 5.637 4.410 4.243 8.986 2.403 8.037 5.534
120 NA NA NA NA NA NA NA 8.418 7.853 12.101 3.409 2.959 6.477 6.664 6.962 6.670 6.511 11.315 3.899 10.274 7.794
127 NA NA NA NA NA NA NA NA 1.411 5.137 6.358 5.734 2.201 2.277 3.903 2.176 2.437 3.721 6.409 4.095 1.519
128 NA NA NA NA NA NA NA NA NA 5.131 5.629 4.973 1.545 1.884 3.187 1.415 1.708 3.715 5.680 4.089 0.803
137 NA NA NA NA NA NA NA NA NA NA 12.152 8.855 7.651 8.071 5.996 5.377 8.231 1.744 12.203 1.821 4.729
143 NA NA NA NA NA NA NA NA NA NA NA 1.956 3.707 3.894 5.632 4.405 3.741 8.981 0.489 8.032 5.529
144 NA NA NA NA NA NA NA NA NA NA NA NA 3.902 4.089 4.937 3.710 3.936 8.286 2.096 7.337 4.834
146 NA NA NA NA NA NA NA NA NA NA NA NA NA 0.348 3.695 1.695 0.508 5.307 4.480 5.681 1.922
147 NA NA NA NA NA NA NA NA NA NA NA NA NA NA 4.104 2.092 0.803 5.932 4.378 6.306 2.371
150 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 1.818 3.474 4.786 5.697 3.745 1.793
151 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 1.792 4.554 5.008 3.682 1.102
152 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 6.111 3.971 5.178 1.964
153 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 8.798 0.684 3.513
157 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 8.467 5.964
160 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 3.153
161 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
164 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
167 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
168 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
173 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
174 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
195 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
212 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
216 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
217 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
218 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
223 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
224 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
225 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
228 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
229 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
232 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
233 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
236 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
237 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
238 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
239 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
241 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
242 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
243 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
244 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
245 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
247 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
248 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
249 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
164 167 168 173 174 195 212 216 217 218 223 224 225 228 229 232 233 236 237 238
72 2.978 3.446 4.112 1.401 5.321 7.529 3.404 10.426 10.561 10.305 4.915 7.890 3.839 2.611 5.804 9.826 10.006 5.368 5.180 4.715
79 6.082 4.951 3.242 5.981 4.483 1.425 3.270 4.322 4.457 4.201 3.054 1.786 3.031 5.689 1.885 3.722 3.902 2.609 3.018 2.657
82 6.472 6.024 3.932 6.671 4.572 1.289 4.415 4.413 4.003 4.326 3.744 0.734 4.176 5.950 2.055 3.813 3.993 2.972 3.039 3.802
83 9.689 9.241 8.160 10.899 8.090 5.151 8.634 2.960 3.386 1.208 7.972 5.160 8.395 9.924 6.283 2.360 1.589 6.746 6.813 8.021
116 4.921 3.868 1.314 3.660 3.600 4.775 0.791 7.672 6.946 7.551 1.819 5.136 0.743 4.554 2.708 7.072 7.252 3.086 2.745 1.619
119 8.500 8.052 6.971 9.710 6.901 4.355 7.793 2.164 2.197 1.815 6.783 4.364 7.554 8.735 5.094 1.564 1.744 5.557 5.624 7.180
120 10.740 10.292 9.231 11.970 8.840 6.623 10.053 4.432 4.457 2.676 9.043 6.632 9.814 11.439 7.354 3.832 3.057 7.668 7.735 9.440
127 5.317 4.261 1.706 4.445 3.993 3.273 1.604 6.170 6.305 6.049 1.518 3.634 1.365 4.950 1.985 5.570 5.750 2.363 2.444 0.991
128 5.311 4.255 1.700 4.439 3.987 2.544 2.522 5.441 5.209 5.320 1.512 2.905 2.283 4.944 1.269 4.841 5.021 1.993 2.349 1.909
137 1.448 1.987 5.308 1.514 4.296 9.067 5.083 11.964 9.091 9.414 4.639 9.428 5.035 1.081 4.693 11.364 11.544 4.530 4.425 5.911
143 8.495 8.047 6.966 9.705 6.896 3.853 7.336 1.248 1.312 0.903 6.778 3.862 7.097 8.730 5.089 1.032 1.212 5.552 5.619 6.723
144 7.800 7.352 6.271 9.010 6.201 4.048 7.093 1.857 1.497 1.565 6.083 4.057 6.854 8.035 4.394 1.257 1.437 4.857 4.924 6.480
146 6.903 5.847 3.292 6.031 4.882 1.344 3.790 4.241 4.376 4.120 3.104 1.705 3.551 6.536 2.284 3.641 3.821 3.008 3.417 3.177
147 7.528 6.472 3.917 6.656 6.204 0.954 3.815 4.139 4.274 4.018 3.729 1.315 3.576 7.161 2.685 3.539 3.719 3.409 4.655 3.202
150 4.211 3.763 3.355 5.803 2.311 3.889 4.076 5.458 4.774 5.097 3.167 3.334 3.834 4.910 1.374 4.858 5.038 1.565 1.633 3.929
151 4.888 3.848 2.539 5.278 3.289 2.052 3.361 4.769 4.085 4.408 2.351 2.235 3.122 4.586 0.691 4.169 4.349 1.415 1.824 2.748
152 6.475 5.344 4.096 6.835 4.876 0.835 3.994 3.732 3.867 3.611 3.908 1.196 3.755 7.340 2.278 3.132 3.312 3.002 3.411 3.381
153 1.595 0.850 3.017 1.653 3.159 5.653 4.056 8.559 7.875 8.198 3.295 6.049 4.008 1.228 3.477 7.959 8.139 3.314 3.288 4.884
157 8.930 8.482 7.401 10.140 7.331 4.288 7.771 1.336 1.654 0.980 7.213 4.297 7.532 9.165 5.524 1.467 0.972 5.987 6.054 7.158
160 1.721 0.477 2.468 2.056 2.274 5.293 3.714 8.199 7.515 7.838 2.935 5.689 3.666 1.354 3.117 7.599 7.779 2.954 2.604 4.542
161 4.716 3.379 1.520 4.259 3.117 2.744 2.187 5.688 5.004 5.327 1.332 3.154 2.094 4.117 0.766 5.088 5.268 1.183 1.545 1.918
164 NA 1.280 3.582 1.578 3.447 6.407 4.828 9.313 8.629 8.952 4.049 8.390 4.780 0.698 4.231 8.713 8.893 4.068 3.718 5.656
167 NA NA 2.764 2.039 2.570 5.589 4.004 8.495 7.811 8.134 3.231 5.985 3.956 1.337 3.413 7.895 8.075 3.250 2.900 4.832
168 NA NA NA 3.357 2.286 4.184 2.174 7.090 6.406 6.729 1.587 4.580 2.126 3.280 2.008 6.490 6.670 1.845 1.657 2.517
173 NA NA NA NA 3.984 7.547 3.563 10.444 8.592 8.915 3.773 7.908 3.515 1.339 4.194 9.844 10.024 4.031 3.843 4.391
174 NA NA NA NA NA 4.963 3.386 6.871 6.187 6.510 2.605 6.042 3.338 2.747 2.345 6.271 6.451 1.626 1.394 3.730
195 NA NA NA NA NA NA 4.797 4.515 4.650 4.394 4.711 0.901 4.558 8.143 3.061 3.915 4.095 3.785 4.267 4.184
212 NA NA NA NA NA NA NA 7.599 6.873 7.478 1.746 5.063 0.670 4.481 2.635 6.999 7.179 3.013 2.672 1.546
216 NA NA NA NA NA NA NA NA 0.318 2.122 6.556 4.473 7.327 8.508 4.867 1.643 1.823 5.330 5.397 6.953
217 NA NA NA NA NA NA NA NA NA 1.933 6.367 4.284 7.138 8.319 4.678 1.454 1.634 5.141 5.208 6.764
218 NA NA NA NA NA NA NA NA NA NA 6.669 4.055 7.290 8.621 4.980 1.255 0.840 5.443 5.510 6.916
223 NA NA NA NA NA NA NA NA NA NA NA 4.562 0.866 4.136 1.945 6.498 6.678 1.852 1.630 1.127
224 NA NA NA NA NA NA NA NA NA NA NA NA 4.318 7.903 2.802 3.675 3.855 3.719 3.786 3.944
225 NA NA NA NA NA NA NA NA NA NA NA NA NA 4.720 2.493 6.567 6.747 2.871 2.530 1.114
228 NA NA NA NA NA NA NA NA NA NA NA NA NA NA 4.322 9.316 9.496 3.862 3.630 5.747
229 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 4.779 4.959 1.002 1.411 2.308
232 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.652 4.992 5.059 6.163
233 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 5.581 5.648 6.752
236 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.674 2.971
237 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 2.596
238 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
239 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
241 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
242 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
243 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
244 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
245 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
247 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
248 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
249 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
239 241 242 243 244 245 247 248 249
72 10.949 11.610 10.418 10.941 11.611 10.754 4.191 6.089 6.269
79 4.845 5.506 5.228 4.837 5.748 4.650 2.449 0.934 0.784
82 4.697 5.358 4.379 4.995 5.572 4.502 3.594 2.079 1.929
83 1.337 1.042 2.022 0.625 2.209 1.496 7.940 5.990 5.840
116 7.640 8.301 7.322 7.938 8.515 7.445 1.095 3.342 3.522
119 1.043 1.176 0.648 1.341 1.373 0.538 6.751 5.194 5.044
120 2.400 1.684 2.406 1.832 1.414 2.205 9.011 7.462 7.312
127 6.693 7.354 6.346 6.685 7.596 6.498 0.898 1.816 1.996
128 5.903 6.564 5.585 6.201 6.778 5.708 1.480 1.696 1.617
137 9.785 10.446 9.467 10.083 11.657 9.590 5.387 7.634 7.814
143 2.173 2.409 2.568 1.926 3.076 1.978 6.630 4.692 4.542
144 0.929 1.590 0.611 1.227 1.804 0.734 6.051 4.887 4.737
146 4.764 5.425 5.147 4.756 5.667 4.569 3.084 0.984 0.834
147 4.662 5.323 5.045 4.654 5.565 4.467 3.109 1.756 1.606
150 5.468 6.129 5.150 5.766 5.796 5.273 3.391 3.846 3.767
151 4.779 5.440 4.461 5.077 5.654 4.584 2.319 2.153 2.003
152 4.255 4.916 4.638 4.247 5.158 4.060 3.288 1.349 1.199
153 8.569 9.230 8.251 8.867 10.199 8.374 4.360 6.607 6.787
157 2.317 2.336 3.003 1.853 3.220 2.122 7.065 5.127 4.977
160 8.209 8.870 7.891 8.507 9.084 8.014 4.018 5.535 5.219
161 5.698 6.359 5.380 5.996 6.573 5.503 1.380 2.140 2.061
164 9.323 9.984 9.005 9.621 10.487 9.128 5.132 7.379 7.559
167 8.505 9.166 8.187 8.803 9.809 8.310 4.308 6.555 6.735
168 7.100 7.761 6.782 7.398 7.975 6.905 1.979 4.187 4.367
173 9.286 9.947 8.968 9.584 10.161 9.091 3.867 6.114 6.294
174 6.881 7.542 6.563 7.179 7.756 6.686 3.192 5.205 4.889
195 5.038 5.699 5.421 5.030 5.941 4.843 4.091 2.132 1.982
212 7.567 8.228 7.249 7.865 8.442 7.372 1.022 3.269 3.449
216 2.656 3.317 2.338 2.954 3.531 2.461 6.524 5.303 5.153
217 2.467 3.128 2.149 2.765 3.342 2.272 6.335 5.114 4.964
218 1.348 2.009 1.975 1.340 2.251 1.153 6.823 4.885 4.735
223 6.877 7.538 6.559 7.175 7.752 6.682 0.589 2.768 2.948
224 4.798 5.459 5.181 4.790 5.701 4.603 3.851 1.892 1.742
225 7.690 8.351 7.107 7.682 8.300 7.495 0.880 2.837 3.017
228 9.926 10.587 9.608 10.224 10.254 9.731 5.223 7.470 7.650
229 5.389 6.050 5.071 5.687 6.264 5.194 1.770 2.563 2.484
232 1.613 2.274 2.008 1.605 2.516 1.418 6.070 4.132 3.982
233 1.968 2.137 2.597 1.654 2.871 1.773 6.659 4.721 4.571
236 5.862 6.523 5.544 6.160 6.538 5.667 2.433 4.176 3.769
237 5.917 6.578 5.599 6.215 6.792 5.722 2.058 3.801 3.394
238 6.997 7.658 6.741 6.989 7.900 6.802 0.454 2.144 2.324
239 NA 1.363 1.555 0.656 1.831 0.733 6.969 5.031 4.881
241 NA NA 1.727 0.550 1.914 0.875 7.319 5.778 5.628
242 NA NA NA 1.812 1.192 0.920 6.663 5.472 5.322
243 NA NA NA NA 2.059 0.888 7.332 5.492 5.342
244 NA NA NA NA NA 1.612 8.418 6.869 6.719
245 NA NA NA NA NA NA 6.786 5.245 5.095
247 NA NA NA NA NA NA NA 2.341 2.521
248 NA NA NA NA NA NA NA NA 0.669
249 NA NA NA NA NA NA NA NA NA
test = melt(dist_mat)
No id variables; using all as measure variables
head(test)
variable value
1 72 NA
2 72 NA
3 72 NA
4 72 NA
5 72 NA
6 72 NA
如何获取与它们关联的所有可能的对和值?
How can I obtain all possible pairs and values associated with them ?
dput(mat)
structure(list(`72` = c(NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_), `79` = c(6.43, NA, NA, NA, NA, NA,
NA, NA, NA, NA), `82` = c(7.458, 1.406, NA, NA, NA, NA, NA, NA,
NA, NA), `83` = c(11.546, 5.442, 5.656, NA, NA, NA, NA, NA, NA,
NA), `116` = c(3.784, 2.956, 4.101, 8.447, NA, NA, NA, NA, NA,
NA), `119` = c(10.252, 4.317, 4.213, 1.736, 7.156, NA, NA, NA,
NA, NA), `120` = c(12.78, 7.3, 7.152, 2.17, 9.684, 2.97, NA,
NA, NA, NA), `127` = c(4.835, 1.695, 2.84, 7.347, 1.739, 6.158,
8.418, NA, NA, NA), `128` = c(5.23, 1.525, 2.554, 6.782, 2.134,
5.593, 7.853, 1.411, NA, NA), `137` = c(2.168, 6.673, 6.41, 11.05,
4.741, 9.861, 12.101, 5.137, 5.131, NA)), .Names = c("72", "79",
"82", "83", "116", "119", "120", "127", "128", "137"), row.names = c("72",
"79", "82", "83", "116", "119", "120", "127", "128", "137"), class = "data.frame")
推荐答案
问题是您未指定id变量.您可以通过将行名转换为变量然后创建melt
:
The problem is that you not specifying an id-variable. You can create one by transforming the row names into a variable and then melt
:
mat$rn <- row.names(mat)
m1 <- melt(mat, id.vars = "rn")
给出:
> head(m1, 15)
rn variable value
1 72 72 NA
2 79 72 NA
3 82 72 NA
4 83 72 NA
5 116 72 NA
6 119 72 NA
7 120 72 NA
8 127 72 NA
9 128 72 NA
10 137 72 NA
11 72 79 6.43
12 79 79 NA
13 82 79 NA
14 83 79 NA
15 116 79 NA
但是,您没有在dput
中提供矩阵,而是提供了数据框.当您将melt
函数应用于矩阵而不指定id变量时,它将按预期工作:
However, you did not supply a matrix, but a dataframe in your dput
. When you apply the melt
function to a matrix without specifying an id variable, it works as expected:
m <- as.matrix(mat)
m2 <- melt(m)
给出:
> head(m2,15)
Var1 Var2 value
1 72 72 NA
2 79 72 NA
3 82 72 NA
4 83 72 NA
5 116 72 NA
6 119 72 NA
7 120 72 NA
8 127 72 NA
9 128 72 NA
10 137 72 NA
11 72 79 6.43
12 79 79 NA
13 82 79 NA
14 83 79 NA
15 116 79 NA
这篇关于重塑2熔体不产生所有对的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!