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. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.