Ответ 1
weekdays(as.Date('16-08-2012','%d-%m-%Y'))
[1] "Thursday"
Возможный дубликат:
Найдите день недели в R
У меня есть данные за такие дни, как 11-01-2011 и т.д. Но я хочу добавить соответствующие данные дату как понедельник, вторник и т.д. Есть ли какой-либо пакет R, содержащий информацию о датах с днями?
weekdays(as.Date('16-08-2012','%d-%m-%Y'))
[1] "Thursday"
Пакет lubridate
отлично подходит для такого рода материалов.
> wday(as.Date('16-08-2012','%d-%m-%Y'))
[1] 5
> wday(as.Date('16-08-2012','%d-%m-%Y'), label=TRUE)
[1] Thurs
Levels: Sun < Mon < Tues < Wed < Thurs < Fri < Sat
> wday(as.Date('16-08-2012','%d-%m-%Y'), label=TRUE, abbr = FALSE)
[1] Thursday
Levels: Sunday < Monday < Tuesday < Wednesday < Thursday < Friday < Saturday
Вот некоторая информация для создания вашей собственной библиотеки или подпрограммы
Константы:
DAY_OF_MONTH
the day of the month
e.g. if input mm-dd-yyy then dd
месяц
march = 1
april = 2
may = 3
...
год
yy[yy] (last to digits from yyyy)
*subtract 1 if month jan or feb
e.g. if input date is 02-01-2012 (mm-dd-yyyy)
year = (12-1) = 11
века
[yy]yy (first two digits from yyyy)
e.g. if input year is 2012 then 20 = century
* year 2000, 1900, ... are 20-1, 19-1 respectively
АЛГОРИТМ
step1: floor(century / 4)
step2: year
step3: floor(year/4)
step4: floor(month*2.6 -0.2) #this is the leap year correction
step5: day_of_month
step6: add step1...step5
step7: divide by 7 # modulo 7 in codespeak
step8: the remainder is the day of the week
Интерпретировать результаты:
Sun = 0, Mon = 1, Tues = 3, etc..
Не библиотека, а как ломаная служба звонит...
"Читайте: Чем больше вы знаете"
Ссылка: http://bit.ly/PqF0M0