Zoeken…


Opmerkingen

gerelateerde onderwerpen

Door elkaar gegooide aantekeningen

  • Date : Slaat de tijd op als het aantal dagen sinds het UNIX-tijdperk op 1970-01-01 . met negatieve waarden voor eerdere datums.
  • Het wordt weergegeven als een geheel getal (het wordt echter niet afgedwongen in de interne weergave)
  • Ze worden altijd afgedrukt volgens de regels van de huidige Gregoriaanse kalender, hoewel de kalender lang niet in gebruik was.
  • Het houdt geen tijdzones bij, dus het moet niet worden gebruikt om de tijd van POSIXct of POSIXlt objecten af te POSIXlt .
  • sys.Date() retourneert een object van klasse Date

Meer aantekeningen

Datums opmaken

Om Dates te formatteren, gebruiken we de functie format(date, format="%Y-%m-%d") met de POSIXct (gegeven als as.POSIXct() ) of POSIXlt (gegeven als as.POSIXlt() )

d = as.Date("2016-07-21") # Current Date Time Stamp

format(d,"%a")            # Abbreviated Weekday
## [1] "Thu"

format(d,"%A")            # Full Weekday
## [1] "Thursday"

format(d,"%b")            # Abbreviated Month
## [1] "Jul"

format(d,"%B")            # Full Month
## [1] "July"

format(d,"%m")            # 00-12 Month Format
## [1] "07"

format(d,"%d")            # 00-31 Day Format
## [1] "21"

format(d,"%e")            # 0-31 Day Format
## [1] "21"

format(d,"%y")            # 00-99 Year
## [1] "16"

format(d,"%Y")            # Year with Century
## [1] "2016"

Zie ?strptime voor meer ?strptime .

data

Gebruik de functie as.Date() om een variabele naar een datum te dwingen.

> x <- as.Date("2016-8-23")
> x
[1] "2016-08-23"
> class(x)
[1] "Date"

Met de functie as.Date() kunt u een as.Date() . De standaardwaarde is %Y-%m-%d , wat jaar-maand-dag is.

> as.Date("23-8-2016", format="%d-%m-%Y") # To read in an European-style date
[1] "2016-08-23"

De opmaakreeks kan binnen een paar enkele aanhalingstekens of dubbele aanhalingstekens worden geplaatst. Datums worden meestal uitgedrukt in verschillende vormen, zoals: "dm-yy" of "dm-YYYY" of "md-yy" of "md-YYYY" of "YYYY-md" of "YYYY-dm" . Deze indelingen kunnen ook worden uitgedrukt door "-" vervangen door "/" . Verder worden datums ook uitgedrukt in de vormen, bijvoorbeeld: "6 november 1986" of "6 november 1986" of "6 november 1986" of "6 november 1986" enzovoort. De functie as.Date () accepteert al dergelijke tekenreeksen en wanneer we het juiste formaat van de tekenreeks vermelden, wordt de datum altijd uitgevoerd in de vorm "YYYY-md" .

Stel dat we een "9-6-1962" in de notatie "%d-%m-%Y" .

#
# It tries to interprets the string as YYYY-m-d
#
> as.Date("9-6-1962")
[1] "0009-06-19"       #interprets as "%Y-%m-%d"
> 
as.Date("9/6/1962")
[1] "0009-06-19"       #again interprets as "%Y-%m-%d"
>
# It has no problem in understanding, if the date is in form  YYYY-m-d or YYYY/m/d
#
> as.Date("1962-6-9")
[1] "1962-06-09"        # no problem
> as.Date("1962/6/9")
[1] "1962-06-09"        # no problem
> 

Door het juiste formaat van de invoertekenreeks op te geven, kunnen we de gewenste resultaten krijgen. We gebruiken de volgende codes voor het opgeven van de indelingen voor de functie as.Date () .

Code opmaken Betekenis
%d dag
%m maand
%y jaar in 2 cijfers
%Y jaar in 4 cijfers
%b afgekorte maand in 3 tekens
%B volledige naam van de maand

Beschouw het volgende voorbeeld het opgeven van de parameter format:

> as.Date("9-6-1962",format="%d-%m-%Y")
[1] "1962-06-09"
>

Het formaat van de parameternaam kan worden weggelaten.

> as.Date("9-6-1962", "%d-%m-%Y")
[1] "1962-06-09"
>

Soms worden namen van de maanden afgekort tot de eerste drie tekens gebruikt bij het schrijven van de datums. In dat geval gebruiken we de opmaakspecificatie %b .

> as.Date("6Nov1962","%d%b%Y")
[1] "1962-11-06"
>

Merk op dat er geen '-' of '/' of witte spaties tussen de leden in de datumreeks staan. De opmaakreeks moet exact overeenkomen met die invoerreeks. Overweeg het volgende voorbeeld:

> as.Date("6 Nov, 1962","%d %b, %Y")
[1] "1962-11-06"
>

Merk op dat er een komma in de datumreeks staat en dus ook een komma in de opmaakspecificatie. Als komma's worden weggelaten in de opmaakreeks, resulteert dit in een NA . Een voorbeeld van het gebruik van de specificator %B indeling is als volgt:

> as.Date("October 12, 2016", "%B %d, %Y")
[1] "2016-10-12"
>
> as.Date("12 October, 2016", "%d %B, %Y")
[1] "2016-10-12"
> 

%y indeling %y is systeemspecifiek en moet daarom met voorzichtigheid worden gebruikt. Andere parameters die met deze functie worden gebruikt, zijn oorsprong en tz (tijdzone).

Tekenreeksen in datumobjecten parseren

R bevat een as.Date() , die is gemaakt met as.Date() , waarvoor een string of vector van strings nodig is, en als de datum niet in ISO 8601 datumnotatie YYYY-MM-DD , een opmaakreeks van strptime style tokens .

as.Date('2016-08-01')    # in ISO format, so does not require formatting string
## [1] "2016-08-01"

as.Date('05/23/16', format = '%m/%d/%y')
## [1] "2016-05-23"

as.Date('March 23rd, 2016', '%B %drd, %Y')    # add separators and literals to format
## [1] "2016-03-23"

as.Date('  2016-08-01  foo')    # leading whitespace and all trailing characters are ignored
## [1] "2016-08-01"

as.Date(c('2016-01-01', '2016-01-02'))
# [1] "2016-01-01" "2016-01-02"


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow