[R] Reimplement order somehow

XpeH sw0rdf1sh_i at yahoo.com
Wed Oct 3 14:37:59 CEST 2007


Hello,

I have a script in R language that makes sorting using the order() method of
R language. What I need is to reimplement this method in any other language
(PHP, Perl, Python, Java maybe).

First I tried to reimplement it in php, here is some numbers that i need to
sort:
1,2,3,4,5,6,7,8,9,10,300,231,11,12,0,1

R language:
n = c(1,2,3,4,5,6,7,8,9,10,300,231,11,12,0,1)
n
[1]   1   2   3   4   5   6   7   8   9  10 300 231  11  12   0   1
order(n)
[1] 15  1 16  2  3  4  5  6  7  8  9 10 13 14 12 11

PHP
<?php
$string = "1 2 3 4 5 6 7 8 9 10 300 231 11 12 0 1";
$array = explode(" ", $string);

foreach ($array as $key => $value) {
    $array_new[$key + 1] = $value;
}
$array = $array_new;

asort($array);
foreach ($array as $key => $value) {
    print " $key";
}
?>

output from php is: 15 1 16 2 3 4 5 6 7 8 9 10 13 14 12 1 (same as from the
R script), now I use another numbers:

0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 10 10 10 10 10 10 10 10 10 10 10
10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11
11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13
13 13 13 13 13 13 13 13 13 13 13 13 13 13 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2 255 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9

R language:
o = c(0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 255, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9)

 order(o)
  [1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17 
18
 [19]  19  20  97  98  99 100 101 102 103 104 105 106 107 108 109 110 111
112
 [37] 113 114 115 117 118 119 120 121 122 123 124 125 126 127 128 129 130
131
 [55] 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
149
 [73] 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166
167
 [91] 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184
185
[109] 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202
203
[127] 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220
221
[145] 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238
239
[163] 240 241 242 243 244 245 246 247 248 249  21  22  23  24  25  26  27 
28
[181]  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45 
46
[199]  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63 
64
[217]  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81 
82
[235]  83  84  85  86  87  88  89  90  91  92  93  94  95  96 116

--------------------

Now the php code:

<?php
$str = "0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 10 10 10 10 10 10 10 10
10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11
11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13
13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 255 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4
4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6
6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8
8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9";
$array = explode(" ", $str);

foreach ($array as $key => $value) {
    $array_new[$key + 1] = $value;
}
$array = $array_new;

asort($array);
foreach ($array as $key => $value) {
    print " $key";
}
?>


and output is:

1 14 13 12 15 17 19 18 11 16 20 4 3 2 10 5 6 8 9 7 109 107 108 114 106 113
112 111 110 102 99 98 115 100 101 105 104 103 97 127 131 130 129 132 133 135
134 128 126 120 119 118 121 122 124 123 117 125 142 143 144 141 140 137 138
139 145 146 151 152 153 150 149 147 148 136 154 161 162 164 160 159 156 157
158 165 166 171 172 173 170 169 167 168 155 163 187 185 184 188 189 192 191
190 183 186 177 176 182 174 178 175 179 180 181 199 201 200 197 194 202 193
195 196 198 208 209 203 211 207 210 206 205 204 223 221 222 224 227 229 228
226 225 220 213 212 219 214 230 215 217 218 216 237 238 239 236 233 231 232
234 235 240 247 248 241 246 249 242 245 243 244 27 29 26 28 23 30 22 24 35
37 38 39 36 21 32 33 34 31 25 46 47 48 45 44 41 42 43 49 50 55 56 57 54 53
51 52 40 58 71 70 69 72 73 76 75 74 68 67 61 60 77 62 63 66 65 64 59 79 91
90 89 92 93 96 95 94 80 78 83 82 81 88 84 87 86 85 116


That is definetly not the same as from the r language order() method...
:confused:


Does anyone knows how to sort this numbers somehow in some language rather
than R?
Thanks.
-- 
View this message in context: http://www.nabble.com/Reimplement-order-somehow-tf4561576.html#a13018078
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list