Как построить гистограмму дня недели и иметь строковые метки

У меня есть данные -фрейм дат (объект Date); см. внизу. Я пытаюсь преобразовать их в день недели, а затем нарисовать гистограмму, , но в идеале, где метки - «понедельник» ... «воскресенье» (не числовые)

У меня две разные проблемы:

  1. Легко преобразовать объект Date в день недели , но результат будет строковым или числовым, а не объектом.
  2. Когда я получаю гистограмму, интервалы и метки неверны. (см. ниже).

Если я использую дни недели (dat) , на выходе будет строка ("Monday" ...), которую нельзя использовать в hist () .

В качестве альтернативы, если я конвертирую в числовые данные, как получить строковые метки на hist () ?

> dotw <- with( month.day.year(dat[,1]), day.of.week(month,day,year) )
> hist(xxx,labels=c('M','Tu','W','Th','F','Sa','Su'),col='black') # WTF?!
> hist(dotw,xlab=list('M','Tu','W','Th','F','Sa','Su'))

Не работает так, как предназначено для маркировки. Что с корзинами шириной 0,5? А также, как предотвратить отсутствие разрыва между воскресеньем-> 0 и понедельником-> 1? В идеале, без промежутков между столбцами.

Мои данные выглядят так:

> dat
  [1] "2010-04-02" "2010-04-06" "2010-04-09" "2010-04-10" "2010-04-14" "2010-04-15" "2010-04-19"
  [8] "2010-04-21" "2010-04-22" "2010-04-23" "2010-04-26" "2010-04-28" "2010-04-29" "2010-04-30"
 ...

> str(dat)
 Date[1:146], format: "2010-04-02" "2010-04-06" "2010-04-09" "2010-04-10" "2010-04-14" "2010-04-15" ...

> str(weekdays(dat))
 chr [1:146] "Friday" "Tuesday" "Friday" "Saturday" "Wednesday" "Thursday" "Monday" ...
> hist(weekdays(dat))
Error in hist.default(weekdays(dat)) : 'x' must be numeric

5
задан smci 3 August 2011 в 08:00
поделиться