STIMA, Linköpings universitet
2021-03-01
lubridate
Programmeringsparadigm är ett sätt att klassificera programmeringsspråk
Utmärkande för R är:
apply()
-funktionerna“Allt som existerar är ett objekt, allt som händer är ett funktionsanrop” (John Chambers)
konstruktor
matrix
, data.frame
, lm
class()
konstruktor
(en funktion med samma namn)plot()
)Olika typer av klasser i R:
@
,
Matrix
plot()
, mean()
, summary()
, names()
methods()
mean.default()
mean.difftime()
base
my_date <- "2012-01-31"
class(my_date)
[1] "character"
my_date_as_date <- as.Date(my_date)
my_date_as_date
[1] "2012-01-31"
Tre huvudsakliga delar:
library(lubridate)
test<-ymd("1999-06-17")
print(test)
[1] "1999-06-17"
week(test)
[1] 24
ymd("1999-06-17") + weeks(2)
[1] "1999-07-01"
Elementordning | Funktion |
---|---|
år, månad, dag | ymd() |
år, dag, månad | ydm() |
månad, dag, år | mdy() |
timme, minut | hm() |
timme, minut, sekund | hms() |
år, mån, dag, timme, min, sek | ymd_hms |
Källa: Grolemund and Wickham (2011, Table 4)
För att “plocka ut” eller ändra delar av ett datum används följande funktioner
Datum | Funktion | Tidsdel | Funktion |
---|---|---|---|
år | year() |
timme | hour() |
månad | month() |
minut | minute() |
vecka | week() |
sekund | second() |
årsdag | yday() |
tidszon | tz() |
månadsdag | mday() |
||
veckodag | wday() |
Källa: Grolemund and Wickham (2011, Table 5)
my_date <- ymd("1999-06-17")
week(my_date)
[1] 24
wday(my_date, label = TRUE)
[1] tor
Levels: sön < mån < tis < ons < tor < fre < lör
year(my_date) <- 2015
my_date
[1] "2015-06-17"
instant
(sv. tidpunkt)interval
( sv. intervall)duration
(sv. duration)period
(sv. period)interval
, duration
och period
används för att beskriva tidsspanninstant
now()
, today()
interval
instant
.interval(start,end)
library(lubridate)
instant_1 <- ymd("2001-06-17")
instant_2 <- ymd("2009-01-11")
my_interval <- interval(start = instant_1, end = instant_2)
my_interval
[1] 2001-06-17 UTC--2009-01-11 UTC
d
as.duration()
duration()
,dseconds()
, dhours()
, ddays()
o.s.v.my_interval / ddays(30)
[1] 92.16667
as.duration(my_interval)
[1] "238896000s (~7.57 years)"
period(num=,units=)
, minutes()
, hours()
, days()
, weeks()
o.s.v.months(3) + days(2)
[1] "3m 2d 0H 0M 0S"
my_interval %/% years(1)
[1] 7
as.period(my_interval)
[1] "7y 6m 25d 0H 0M 0S"
Vi lägger till /drar bort en duration eller period till/från ett datum.
course_start <- ymd("2019-01-21")
course_start + weeks(8)
[1] "2019-03-18"
course_start + months(1)
[1] "2019-02-21"
course_start + ddays(30)
[1] "2019-02-20"
my_vector
: matrix(my_vector,2,3)
matrix()
fyller matrisen kolumnvismatrix(myVector, 2, 3, byrow=TRUE)
fyller radvis.t(X)
diag(c(1,3,5))
diag(3)
A%*%B
matrix
, ej vektorerX[,1,drop=FALSE]
solve(X)
solve(a=A,b=b)
eigen(X)
rowSums(X)
och colSums(X)
rbind(X,Y)
eller cbind(X,Y)
Matrix()
, vilket är en konstruktor, som skapar matriser med en annan klass jämfört med matrix()
.Grolemund, G., Wickham, H., 2011. Dates and times made easy with lubridate. Journal of Statistical Software 40 (3), 1–25. kan hittas [här]