You're sorting characters in the PHP script instead of numbers! sort(as.character(o)) in R will yield the same results as you PHP script does.
Thierry ------------------------------------------------------------------------ ---- ir. Thierry Onkelinx Instituut voor natuur- en bosonderzoek / Research Institute for Nature and Forest Cel biometrie, methodologie en kwaliteitszorg / Section biometrics, methodology and quality assurance Gaverstraat 4 9500 Geraardsbergen Belgium tel. + 32 54/436 185 [EMAIL PROTECTED] www.inbo.be Do not put your faith in what statistics say until you have carefully considered what they do not say. ~William W. Watt A statistical analysis, properly conducted, is a delicate dissection of uncertainties, a surgery of suppositions. ~M.J.Moroney > -----Oorspronkelijk bericht----- > Van: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] Namens XpeH > Verzonden: woensdag 3 oktober 2007 14:38 > Aan: r-help@r-project.org > Onderwerp: [R] Reimplement order somehow > > > 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. > ______________________________________________ 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.