library(knitr)

library(questionr)
library(base)
library(stats)
library(lubridate)
## 
## Attachement du package : 'lubridate'
## Les objets suivants sont masqués depuis 'package:base':
## 
##     date, intersect, setdiff, union
library(parsedate)
library(zoo)
## 
## Attachement du package : 'zoo'
## Les objets suivants sont masqués depuis 'package:base':
## 
##     as.Date, as.Date.numeric
library(stats)
library(ggplot2)

Italique

Gras

Titre1

Titre 2

Exemple de lien

x <- 1.5
mean(cars$dist)
## [1] 42.98
data("hdv2003")
tab <- lprop(table(hdv2003$qualif, hdv2003$sexe))
tab
##                           
##                            Homme Femme Total
##   Ouvrier specialise        47.3  52.7 100.0
##   Ouvrier qualifie          78.4  21.6 100.0
##   Technicien                76.7  23.3 100.0
##   Profession intermediaire  55.0  45.0 100.0
##   Cadre                     55.8  44.2 100.0
##   Employe                   16.2  83.8 100.0
##   Autre                     36.2  63.8 100.0
##   Ensemble                  44.8  55.2 100.0
kable(tab, digits = 1)
Homme Femme Total
Ouvrier specialise 47.3 52.7 100
Ouvrier qualifie 78.4 21.6 100
Technicien 76.7 23.3 100
Profession intermediaire 55.0 45.0 100
Cadre 55.8 44.2 100
Employe 16.2 83.8 100
Autre 36.2 63.8 100
Ensemble 44.8 55.2 100
Ensar_birth = base ::as.Date(x= "2024-11-12")
Ensar_birth
## [1] "2024-11-12"
Today = base ::as.Date("23/01/2025", format = "%d/%m/%Y")
Today
## [1] "2025-01-23"

Exercice 1

df1 <- data.frame(date = seq(as.Date("2023-01-01"), as.Date("2023-01-10"), "day"), 
                     price = c(100, 105, 110, 108, 112, 115, 118, 120, 122, 125))
df1
##          date price
## 1  2023-01-01   100
## 2  2023-01-02   105
## 3  2023-01-03   110
## 4  2023-01-04   108
## 5  2023-01-05   112
## 6  2023-01-06   115
## 7  2023-01-07   118
## 8  2023-01-08   120
## 9  2023-01-09   122
## 10 2023-01-10   125

Exercice 2

df2 <- data.frame(id = seq(1, 10, 1), 
                     date = seq(as.Date("2016-01-02"), as.Date("2016-10-02"), "month"))

df2 <- cbind(df2, annee = format(df2$date, format = "%Y"))
df2 <- cbind(df2, mois = format(df2$date, format = "%m"))
df2 <- cbind(df2, semaine = isoweek(ymd(df2$date)))
df2 <- cbind(df2, jour = format(df2$date, format = "%d"))

df2
##    id       date annee mois semaine jour
## 1   1 2016-01-02  2016   01      53   02
## 2   2 2016-02-02  2016   02       5   02
## 3   3 2016-03-02  2016   03       9   02
## 4   4 2016-04-02  2016   04      13   02
## 5   5 2016-05-02  2016   05      18   02
## 6   6 2016-06-02  2016   06      22   02
## 7   7 2016-07-02  2016   07      26   02
## 8   8 2016-08-02  2016   08      31   02
## 9   9 2016-09-02  2016   09      35   02
## 10 10 2016-10-02  2016   10      39   02

Exercice 3

df3 <- data.frame(id = seq(1, 7, 1), 
                     date = seq(from = as.POSIXct(x = "2025-01-23 15 :00",format
= "%Y-%m-%d %H :%M"), to = as.POSIXct(x = "2025-01-23 21 :00", format
= "%Y-%m-%d %H :%M"), by = "hour"))

df3 <- cbind(df3, minute = format(df3$date, format = "%M"))
df3 <- cbind(df3, seconde = format(df3$date, format = "%S"))

df3
##   id                date minute seconde
## 1  1 2025-01-23 15:00:00     00      00
## 2  2 2025-01-23 16:00:00     00      00
## 3  3 2025-01-23 17:00:00     00      00
## 4  4 2025-01-23 18:00:00     00      00
## 5  5 2025-01-23 19:00:00     00      00
## 6  6 2025-01-23 20:00:00     00      00
## 7  7 2025-01-23 21:00:00     00      00
age = Sys.Date() - Ensar_birth
print(age)
## Time difference of 83 days
difftime(Sys.Date(), Ensar_birth)
## Time difference of 83 days

Exercice 4

df4 <- data.frame(id = seq(1, 7, 1), 
                     date = seq(from = as.POSIXct(x = "2025-01-23 15 :00",format
= "%Y-%m-%d %H :%M"), to = as.POSIXct(x = "2025-01-23 21 :00", format
= "%Y-%m-%d %H :%M"), by = "hour"))

df4 <- cbind(df4, annee = (year(now()) - as.numeric(format(df4$date, format = "%Y"))))
df4 <- cbind(df4, mois = (month(now()) - as.numeric(format(df4$date, format = "%m"))))
df4 <- cbind(df4, semaine = (week(now()) - as.numeric(format(df4$date, format = "%W"))))
df4 <- cbind(df4, jour = (difftime(Sys.Date(), df4$date)))

df4
##   id                date annee mois semaine          jour
## 1  1 2025-01-23 15:00:00     0    1       2 10.41667 days
## 2  2 2025-01-23 16:00:00     0    1       2 10.37500 days
## 3  3 2025-01-23 17:00:00     0    1       2 10.33333 days
## 4  4 2025-01-23 18:00:00     0    1       2 10.29167 days
## 5  5 2025-01-23 19:00:00     0    1       2 10.25000 days
## 6  6 2025-01-23 20:00:00     0    1       2 10.20833 days
## 7  7 2025-01-23 21:00:00     0    1       2 10.16667 days

Exercice 5

serie_annuelle = ts(1 :20, start = 2003L, frequency = 1)
serie_mensuelle = ts(41 :60, start = 2003L, frequency = 12)
serie_trimestrielle = ts(41 :60, start = 2003L, frequency = 4)

serie_annuelle
## Time Series:
## Start = 2003 
## End = 2022 
## Frequency = 1 
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
serie_mensuelle
##      Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 2003  41  42  43  44  45  46  47  48  49  50  51  52
## 2004  53  54  55  56  57  58  59  60
serie_trimestrielle
##      Qtr1 Qtr2 Qtr3 Qtr4
## 2003   41   42   43   44
## 2004   45   46   47   48
## 2005   49   50   51   52
## 2006   53   54   55   56
## 2007   57   58   59   60
ggplot(df1, aes(date, price)) + 
  geom_line( color = "red") +
  geom_point(shape = 21, color = "green", fill = "gold", size = 3) +
  labs(title = "Evolution des prix", x = "Date", y = "Prix")