[R] how to sort a column with numbers and characters

2015-01-11 Thread raz
Hi,

I would like to sort a data frame by a column, the column to sort by has a
list of numbers 1:150 (a few numbers are missing so the total is 137) and
two letters S , Z. How can I sort it so that first I have the numbers
in running order (1,2,3,...150) and then the letters S and Z?

the column class is factor

  [1] 1   10  100 101 102 104 105 106 107 108 109 11  110 111 113 114 115
116
 [19] 117 118 119 12  120 122 123 124 125 126 127 128 129 130 131 132 134
135
 [37] 136 137 138 139 140 141 142 143 144 145 146 147 148 149 15  150 16
17
 [55] 18  19  2   20  22  23  24  25  26  27  28  29  3   30  31  32  33
34
 [73] 35  36  37  38  39  4   40  41  42  43  44  45  46  47  48  5   50
51
 [91] 52  53  54  55  56  57  58  59  6   60  61  62  63  64  65  68  69
7
[109] 70  71  72  74  76  77  78  79  8   80  81  82  83  84  85  86  87
88
[127] 89  9   90  91  92  93  94  95  96  97  98  S   Z


​Thanks,

Raz​

-- 
\m/

[[alternative HTML version deleted]]

__
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.


Re: [R] how to sort a column with numbers and characters

2015-01-11 Thread William Dunlap
Change that column to be a factor with the levels in the order that you
wish.
   dataFrame$column - factor(dataFrame$column, levels=c(1:150, S, Z))
Then it will sort in that order.  E.g.,
   d - data.frame(One=c(5,21,10,Z,S,9), Two=2^(1:6))
   d[order(d$One),]
One Two
  3  10   8
  2  21   4
  1   5   2
  6   9  64
  5   S  32
  4   Z  16
   d$One - factor(d$One, levels=c(1:150,S,Z))
   d[order(d$One),]
One Two
  1   5   2
  6   9  64
  3  10   8
  2  21   4
  5   S  32
  4   Z  16


Bill Dunlap
TIBCO Software
wdunlap tibco.com

On Sun, Jan 11, 2015 at 2:21 AM, raz barvazd...@gmail.com wrote:

 Hi,

 I would like to sort a data frame by a column, the column to sort by has a
 list of numbers 1:150 (a few numbers are missing so the total is 137) and
 two letters S , Z. How can I sort it so that first I have the numbers
 in running order (1,2,3,...150) and then the letters S and Z?

 the column class is factor

   [1] 1   10  100 101 102 104 105 106 107 108 109 11  110 111 113 114 115
 116
  [19] 117 118 119 12  120 122 123 124 125 126 127 128 129 130 131 132 134
 135
  [37] 136 137 138 139 140 141 142 143 144 145 146 147 148 149 15  150 16
 17
  [55] 18  19  2   20  22  23  24  25  26  27  28  29  3   30  31  32  33
 34
  [73] 35  36  37  38  39  4   40  41  42  43  44  45  46  47  48  5   50
 51
  [91] 52  53  54  55  56  57  58  59  6   60  61  62  63  64  65  68  69
 7
 [109] 70  71  72  74  76  77  78  79  8   80  81  82  83  84  85  86  87
 88
 [127] 89  9   90  91  92  93  94  95  96  97  98  S   Z


 ​Thanks,

 Raz​

 --
 \m/

 [[alternative HTML version deleted]]

 __
 R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
 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.


[[alternative HTML version deleted]]

__
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.