2010-12-06 3 views
3

Я сожалею, что прихожу сюда после того, как вы сожгли часы поиска в Интернете по этому упрощенному вопросу.как, в R, рассчитать время дня и дату календаря

У меня есть несколько наборов данных для построения в R, каждый из которых состоит из двух столбцов данных: время, дата. Я использую R 2.11.0 на компьютере под управлением Windows через Rgui.

Время «время суток» означает, что произошло событие. В качестве примера, он распознается как:

Factor w/ 87 levels "5:53","5:54",..: 84 85 85 85 86 ... 

дата календарной даты, признаны:

Class 'Date' num [1:730] 13879 13880 13881 13882 13883 ... 

время значения записываются в формате 24-часовой тактовой, ч: мм или чч: мм. Значения даты отображаются yyyy-mm-dd.

Я хочу рассчитать время (по оси Y) по сравнению с датой (ось х).

Использование

plot(date,time) 

дает точный вид участка, но ось у помечена как числовые значения коэффициента (примерно от 0 до 90), а не желаемого, временно упорядоченных уровней фактора переменная. Ось X помечена в желаемом, удобочитаемом формате.

Как это исправить? Есть ли в R формат «времени дня», в который я могу преобразовать переменную «время»? Впоследствии я хотел бы сделать арифметику и по значениям времени, и не хотел бы переносить один столбец значений для использования в построении и один столбец значений для математики.

Я провел несколько примеров онлайн-манипуляций (даты + времени) в R и преобразовал их в разные форматы. Я не считаю, что это моя проблема, так как у меня есть отдельные поля для времени и даты и вы хотите построить один за другим.

Заранее благодарю вас за ваши предложения или ваши указания на доступный в Интернете ресурс (нет соответствующих библиотек или книжных магазинов в моем местоположении).

ответ

1

Там может быть проще для этого, но вы всегда можете пометить ось y самостоятельно. Настройте вектор ticksAt ниже, чтобы найти что-то подходящее для ваших данных.

Data <- data.frame(date=Sys.Date()+1:10,time=paste(5,41:50,sep=":")) 
with(Data, plot(date,time,yaxt="n")) 
ticksAt <- c(1,3,5,7,9) 
axis(2, at=ticksAt, labels=as.character(Data$time)[ticksAt]) 

?plot.zoo имеет некоторые хорошие примеры того, как создать довольно оси аннотаций, хотя некоторые из них могут быть зоо- специфичны. ?par - также хороший ресурс.

0

ts и timeSeries - два хороших варианта.
Посмотрите на
Related

+0

Благодарим вас за советы. Я посмотрел на то, что мог найти на ts (например, http://127.0.0.1:15268/library/stats/html/plot.ts.html, http://www.stat.pitt.edu/stoffer/tsa2 /R_time_series_quick_fix.htm). Мое впечатление, что это не касается моей проблемы, которая в основном заключается в том, как иметь ось y, помеченную во времени. (Данные кажутся правильными для построения графика plot(), а ось x помечена календарными датами.) Мне все равно нужно посмотреть в timeSeries, а также на множество пакетов в разделе «Связанные» публикации. Я ценю ваши предложения. – janus 2010-12-06 07:40:35

0

Предположим, у вас есть два вектора, один из Date класса под названием «дт», а другой фактор назван «тм»:

x <- paste(as.character(dt[1:2]), as.character(tm)) 
strptime(x, "%Y-%m-%d %H:%M") 
## [1] "2008-01-01 05:53:00" "2008-01-02 05:54:00" 
class(strptime(x, "%Y-%m-%d %H:%M")) 
## [1] "POSIXt" "POSIXlt" 
+0

Наличие отдельных переменных времени и даты является неотъемлемой частью ситуации для этого вопроса, поскольку тема, представляющая интерес, исследует, как время суток для разных событий меняется в течение календарных лет. Я боюсь, что я не понимаю ценность объединения этих двух в один объект, несмотря на возможность их преобразования в POSIX. – janus 2010-12-07 07:38:46

+0

Вместо того, чтобы создавать собственные функции для объектов времени, класс, существование которых я не знаю, я думал, что вы можете использовать TimeDateClass, чтобы сделать одно из создаваемых различий между переменной времени даты и производной переменной, усеченной до полуночи, или создать и добавить переменная, у которой вся его датада была переназначена на общую дату. Затем вы сможете использовать встроенные функции форматирования для вашей маркировки оси y. – 2010-12-07 13:00:28

Смежные вопросы