Комментарии 14
Спасибо за комментарий!
timeperiodsR
это мой пакет, я его в сентябре только опубликовал на CRAN.
Зачем я его написал, потому, что мне надоело копипастить часть кода для определения отчётного периода, в 90% случаев это прошлый месяц или прошлая неделя. И я решил для этого создать удобный пакет.
Потом решил, что удобно будет ещё и проверку периода с фильтрацией добавить, и дописал в пакет несколько операторов.
Если интересно вот ссылка на виньетку, на опечатки в ней прошу пока особо внимания не обращать, в следующей редакции всё исправлю.
А не подскажите простой способ преобразовать "1w 2d 3h" в часы, например?
Можно еще добавить, что разных пакетах есть ещё свои костылики для работы с датой\временем.
Например в data.table есть классы IDate/ITime и функции с ними связанные; и хочется верить, что при обработке данных в таблицах это ускоряет работу с датами\временем, аж шуба заворачивается ;)
Алексей, такой вопрос. Как лучше добавить склонение к датам? Тот же lubridate выдает 13 март, 1 декабрь… Нужно: 13 марта, 1 декабря. Чтобы работало без поломок кодировки. Спасибо!
Честно говоря так сразу затрудняюсь ответить, попробую найти решение, как найду отпишусь тут.
Первое что в голову пришло просто создать справочник склонений, и просто заменять как текст.
Первое что в голову пришло просто создать справочник склонений, и просто заменять как текст.
Были проблемы с похожим подходом. Я сравнивал weekdays(Sys.Date()) == 'понедельник'. Проблема началась тогда, когда скрипт стал запускаться через планировщик (возможно, через cron такая же беда). Оказалось, что никогда сравнение не срабатывало, вручную срабатывало. Подсказали, что кодировка в этом случае ломается. Мой вопрос: stackoverflow.com/questions/54981059/r-weekdayssys-date-cannot-figure-out-what-causes-this-behavior
Можно попробовать тестово через планировщик запустить и принтов добавить, потом глянуть лог как он отображает имена месяцев / дней и т.д..
В принципе проблему кодировки можно решить, например в начало скрипта добавить Sys.setlocale("LC_CTYPE", "russian")
.
Или на худой конец при сравнение кодировать через iconv().
Я не особо силён в английском, но у них вроде нет склонений, поэтому и сомневаюсь, что какими то стандартными способами это можно в R реализовать, разве что какой то API использовать русскоязычный для склонения.
> Sys.getlocale("LC_TIME")
[1] "Russian_Russia.1251"
Можно попробовать тестово через планировщик запустить и принтов добавить, потом глянуть лог как он отображает имена месяцев / дней и т.д..
Придется поэкспериментировать. Кроме как замены через словарь я не нашел вариантов, а без замены выглядит не очень и не приятно русским заказчикам.
Я не особо силён в английском, но у них вроде нет склонений
У них нет, там все просто.
Подскажите пожалуйста, чем обрабатывать time-коды, в которых подсчёты до наносекунд? Часто сталкиваюсь, что при обработке json'ов с веб странички например клики пользователя учитываются в наносекундах, а надо перевести в нормальный POSIXlt. Я просто делю на 1 млн, но мб подскажите более изящный способ/библиотеку)
Т.е. есть 1608177375410482537, а надо 2020-12-01 11:43:37
Честно говоря более простого и специального метода чем просто разделить на 1 млн я не знаю, но вы ведь можете и сами написать себе для этого функцию, если она часто вам нужна. И поместить эту функнцию к примеру в .RProfile.
В таком случа функция сама будет подгружаться при запуске R.
Работа с датами на языке R (базовые возможности, а также пакеты lubridate и timeperiodsR)