#r #weekday
#r #день недели
Вопрос:
Я нахожусь в России, я отправляю отчеты по понедельникам с помощью планировщика Windows. ‘понедельник’ stands for Monday in Russian.
На самом деле я сталкиваюсь со странным поведением weekdays(Sys.Date()), которое отличается в зависимости от того, как я его вызываю. При вызове из RStudio IDE или из R console это if(
утверждение возвращает TRUE сегодня (то есть в понедельник), как и ожидалось, но при вызове этого скрипта из командной строки или с помощью планировщика условие возвращает FALSE. Я действительно в замешательстве. Я не могу это отладить.
week_day_send <- F
print(weekdays(Sys.Date()))
if(
weekdays(Sys.Date()) == 'понедельник'
)
{
week_day_send <- T
message('sending weekly reports')
}
Мой язык:
> Sys.getlocale("LC_TIME")
[1] "Russian_Russia.1251"
Комментарии:
1. Я предполагаю, что это может быть проблема кодирования. Однако не следует полагаться на
weekdays
, поскольку это зависит от локального. По крайней мере, не вводите значение жестко. Определите что-то вродеmonday <- weekdays(someKnownMonday)
, а затем сравнитеweekdays(Sys.Date())
сmonday
.2. попробуйте использовать функцию wday из lubridate
3. Хорошо, Никола, спасибо. Я сделал это. понедельник <- weekdays(as.Date(«2019-03-04»)) работает как из IDE, так и из командной строки, так что, я думаю, это решено. Позже я тоже обновлю, большое спасибо! Ghh, такая глючная ошибка.
4. @Hunaidkhan Я использовал lubridate для получения дней недели в моем другом отчете, и это помогло. Спасибо!
5. приветствую вас @AlexeyBurnakov