R
кажется не вполне тривиальным занятием, но при ближайшем знакомстве выглядит несложной. Итак, есть массив в несколько тысяч записей (назовём его massive), одна переменная (пусть она называется date) которого — даты соответствующих наблюдений в привычном формате день.месяц.год (напр., 12.12.2012). Стоит задача рассортировать все наблюдения по месяцам. Сначала преобразуем нашу переменную в формат даты:
massive$date.new = as.Date(massive$date,'%d.%m.%Y')
Обратите внимание на параметр формата
%d.%m.%Y
— мы указываем машине, что наши исходные даты представлены в виде день.месяц (цифрами, а не словами).год (полностью), при этом разделителем выступает точка. Если бы год был в сокращённом виде (двумя цифрами, без столетия), то вместо прописной %Y
следовало бы поставить строчную %y
.Полученная переменная date.new пригодна для календарных вычислений. Возможно ли напрямую из неё извлечь месяцы, я пока не знаю, поэтому мы воспользовались кружным путём:
massive$date.sort=strtrim(format(massive$date.new,'%Y-%m-%d'),7)
Иными словами, сначала дату мы преобразуем в строки типа
format()
, после чего из каждой такой строки отсекаем первые семь символов (т. е. strtrim()
и записываем полученное в новую переменную, которая и будет сортировать наши наблюдения.
Немає коментарів:
Дописати коментар