Создайте вектор месяца.
> mths<-month.abb
> mths
[1] "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"
но это вектор символов, поэтому я конвертирую его в множители следующим образом:
> mths1<-factor(mths)
> mths1
[1] Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
Levels: Apr Aug Dec Feb Jan Jul Jun Mar May Nov Oct Sep
Но теперь порядок уровней показан по алфавиту, что не то, что нам нужно. Попытавшись сделать следующее, мы получаем уровни в правильном порядке, но данные перемешиваются.
> levels(mths1)<-mths
> mths1
[1] May Apr Aug Jan Sep Jul Jun Feb Dec Nov Oct Mar
Levels: Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
И тогда я попробовал это:
> mths1[]<-mths
> mths1
[1] Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
Levels: Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
И теперь факторы, а также их уровни отсортированы правильно.
Я хочу знать, какая динамика происходит за кулисами в каждом из вышеперечисленных случаев, так как назначения уровням и данным меня немного смутили.
Наконец, какой более элегантный способ добиться того же?
mths1<-factor(mths,levels=mths)
(или, в более общем смысле,factor(mths,levels=unique(mths))
- person Ben Bolker   schedule 16.04.2017