Como formatar e realizar operações em datas e horários em R

Para formatar uma data para a impressão bonita em R, você usa formato()

, que leva uma POSIXct ou POSIXlt datetime como entrada, juntamente com uma string de formatação.

Usando o exemplo onde o objecto XCT é o dia ea hora da Apolo de destino, você pode formatar essa data e hora de muitas maneiras diferentes. Para exemplos, para formatá-lo como DD / MM / AA, experimentar:

> Format (XCT, "% d /% m /% y") [1] "20/07/69"

Além dos códigos de formatação, você pode usar qualquer outro personagem. Se você quiser formatar o XCT data e hora como uma frase, tente o seguinte:

> Format (XCT, "% s minutos passados% I% p, em% d% B% Y") [1] "39 minutos passado 20:00, em 20 de julho de 1969"

Devido R lojas datetime objetos como números, você pode executar várias operações em datas.

Adição e subtração de R

Devido R lojas de objetos de classe POSIXct como o número de segundos desde a época (geralmente o início de 1970), você pode fazer a adição e subtração, adicionando ou subtraindo segundos. É mais comum para adicionar ou subtrair dias a partir de datas, por isso é útil saber que cada dia tem 86.400 segundos.

> 24 * 60 * 60 [1] 86400

Assim, para adicionar sete dias para a Apolo Lua data de desembarque, utilize disso, lembre-se de multiplicar o número de dias pelo número de segundos por dia:

> XCT + 7 * 86400 [1] "1969/07/27 20:17:39 UTC"

Depois de saber que você pode converter qualquer duração de segundos, você pode adicionar ou subtrair qualquer valor a um objeto de data e hora. Por exemplo, adicionar três horas para o momento do Apolo alunagem:

> XCT + 3 * 60 * 60 [1] "1969/07/20 23:17:39 UTC"

Da mesma forma, para obter uma data sete dias antes, usar subtração:

> XCT - 7 * 86400 [1] "1969/07/13 20:17:39 UTC"

Comparação de datas em R

Semelhante à maneira que você pode adicionar ou subtrair estados Você também pode comparar datas com os operadores de comparação, tais como menos do que (lt;) Ou maior que (>).

Digamos que você queira comparar o tempo atual, com qualquer tempo fixo. Em R, utiliza o Sys.time () função para obter a hora atual do sistema:

> Sys.time () [1] "2012-03-24 10:12:52 GMT"

Agora você sabe o tempo exato quando escreveu esta frase. Claramente quando você tenta o mesmo comando que você vai obter um resultado diferente!

Agora você pode comparar o seu tempo de sistema atual com a hora do Apolo aterrissagem:

> Sys.time () lt; XCT [1] FALSO

Se o relógio do sistema é preciso, então, obviamente, seria de esperar que o resultado seja falsa, pois o pouso na Lua aconteceu há mais de 40 anos atrás.

Os operadores de comparação são vetorizado, para que possa comparar um vector inteira de datas com a data aterragem de lua. Tente usar todo o seu conhecimento das datas, sequências de datas, e os operadores de comparação para comparar o início de várias décadas para a data aterragem de lua.

Comece por criar uma POSIXct objeto que contém o primeiro dia de 1950. Em seguida, use seq () para criar uma sequência com intervalos de dez anos:

> dec.start lt; - as.POSIXct ( "1950/01/01")> dezembro lt; - seq (dec.start, por = "10 anos", length.out = 4)> dezembro [1] "1950/01/01 GMT" "1960/01/01 GMT" "1970-01-01 GMT "[4]" 1980-01-01 GMT "

Finalmente, você pode comparar seu novo vetor dezembro com a data lua desembarque:

> Dezembro> XCT [1] FALSO FALSO VERDADEIRO VERDADEIRO

Como você pode ver, os dois primeiros resultados (em comparação com 1950 e 1960) são FALSO, e os dois últimos valores (em comparação com 1970 e 1980) são VERDADE.

menu