Mam ramkę danych dat (obiekt Date); patrz na dole. Próbuję przekonwertować je na dzień-of-tygodnia, a następnie narysować histogram, ale idealnie gdzie etykiety są „Monday” ... „Niedzieli” (nie numerycznie)Jak histogram dzień tygodnia i mieć etykiety ciągów znaków
Mam dwa odrębne problemy :
- To proste to convert a Date object to day-of-week, ale wynikiem jest ciąg lub numeryczna, a nie obiekt.
- Po uzyskaniu histogramu, pojemniki i etykiety są nieprawidłowe (patrz poniżej).
Jeśli używam weekdays(dat)
, wyjście jest ciągiem znaków ("Monday" ...), którego nie można użyć w hist()
.
Alternatywnie, jeśli mogę przekonwertować dane numeryczne, jak uzyskać etykiety ciągów na 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'))
Nie działa zgodnie z przeznaczeniem do opisywania. Co się dzieje z pojemnikami o szerokości 0,5? A także, jak zapobiegać brakowi przerwy między niedzielą-> 0 a poniedziałkiem-> 1? Idealnie, bez luk między kolumnami.
Moje dane wygląda następująco:
> 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
Piękna, dziękuję! Tak dobrze, powinno być wbudowane! (Nie spodziewałem się używać przerw na 0.5 dla danych całkowitych, które naprawdę powinny być wbudowane i zapobiegać fałszywym półkom szerokości). – smci