Ограничение размера окна и / или удаление определенных строк значений времени в R - PullRequest
2 голосов
/ 17 октября 2011

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

1) Способ 1: ограничение размера окна, для которого требуется следующая функция:

<символы (данные $ Times, данные $ y, кружки = данные $ z, xlim = c ("5:00 pm", "10:00 pm")) </p>

Проблема в том, что я получаю ошибку "Недопустимое значение" xlim "при попытке ввести две конечные точки времени.

2) Метод 2: очистка строк в Data $ Times, которые имеют значения более 17:00. * 10101

Проблема здесь в том, что я не уверен, как отсортировать строки по самому раннему времени -> по последнему времени ИЛИ как определить новую переменную так, чтобы TimesPM <- Data $ Times> «5pm» (что я набрал только сейчас очевидно не сработало.)

Есть идеи? Заранее спасибо.

ETA: Это то, что я изобразил:

Times<-strptime(DATA$Time,format="%I:%M%p")

symbols(Times, y, circles=z, xaxt='n', inches=.4, fg="3", bg=(a), xlab="Times", ylab="y")

axis.POSIXct(1, at=Times, format="%I:%M%p")

Screenshot

1 Ответ

1 голос
/ 17 октября 2011

У обоих подходов есть проблема, заключающаяся в том, что, по всей вероятности, ваш формат даты и времени не будет равняться значениям, выраженным просто как символьный вектор, такой как «5:00 ​​pm», даже после приведения в действие с помощью оператора сравнения «>». Чтобы получить лучший совет, вам нужно представить str (DATA $ Times) или dput (head (DATA $ Times)) или класс (Data $ Times). Обычно функции построения графиков распознают либо действительные классы даты или даты-времени, либо их числовое представление. Если операция упорядочения не работает, возникает вопрос, есть ли у вас подходящий класс. Но у вас, похоже, есть метка оси, которая предлагает какой-то формат даты и времени, и нам просто нужно выяснить, какой это класс на самом деле.

Поскольку вы создаете вектор символов из столбца Time, вы, вероятно, захотите применить ограничение перед отправкой вектора DATA $ Time в strptime (). Вы все еще не предложили запрошенные разъяснения, поэтому у меня нет возможности дать проверенный или даже очень конкретный код, но вы, возможно, делаете что-то вроде

Times<-strptime(DATA$Time[ as.POSIXlt(DATA$Time)$hour >= 17 & 
                           as.POSIXlt(DATA$Time)$hour <= 22 ] , 
                format="%I:%M%p")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...