tutos 2018

parent e391755a
1. [Installation et configuration des différents outils](https://app-learninglab.inria.fr/gitlab/85bc36e0a8096c618fbd5993d1cca191/mooc-rr/blob/master/documents/tuto_emacs_windows/tuto_emacs_windows.md#1-installation-et-configuration-des-diff%C3%A9rents-outils)
1. [Installer et configurer Emacs](https://app-learninglab.inria.fr/gitlab/85bc36e0a8096c618fbd5993d1cca191/mooc-rr/blob/master/documents/tuto_emacs_windows/tuto_emacs_windows.md#11-installer-et-configurer-emacs)
2. [Ajouter les chemins de R et Python dans dans la variable PATH de Windows](https://app-learninglab.inria.fr/gitlab/85bc36e0a8096c618fbd5993d1cca191/mooc-rr/blob/master/documents/tuto_emacs_windows/tuto_emacs_windows.md#12-ajouter-les-chemins-de-r-et-python-dans-dans-la-variable-path-de-windows)
3. [Installer et configurer matplotlib (librairie graphique Python)](https://app-learninglab.inria.fr/gitlab/85bc36e0a8096c618fbd5993d1cca191/mooc-rr/blob/master/documents/tuto_emacs_windows/tuto_emacs_windows.md#13-installer-et-configurer-matplotlib-librairie-graphique-python)
2. [Utilisation d'Emacs](https://app-learninglab.inria.fr/gitlab/85bc36e0a8096c618fbd5993d1cca191/mooc-rr/blob/master/documents/tuto_emacs_windows/tuto_emacs_windows.md#2-utilisation-demacs)
1. [Exécuter des commandes dos](https://app-learninglab.inria.fr/gitlab/85bc36e0a8096c618fbd5993d1cca191/mooc-rr/blob/master/documents/tuto_emacs_windows/tuto_emacs_windows.md#21-ex%C3%A9cuter-des-commandes-dos)
2. [Exécuter du code R](https://app-learninglab.inria.fr/gitlab/85bc36e0a8096c618fbd5993d1cca191/mooc-rr/blob/master/documents/tuto_emacs_windows/tuto_emacs_windows.md#22-ex%C3%A9cuter-du-code-r)
3. [Exécuter du code Python](https://app-learninglab.inria.fr/gitlab/85bc36e0a8096c618fbd5993d1cca191/mooc-rr/blob/master/documents/tuto_emacs_windows/tuto_emacs_windows.md#23-ex%C3%A9cuter-du-code-python)
4. [Écrire dans le journal](https://app-learninglab.inria.fr/gitlab/85bc36e0a8096c618fbd5993d1cca191/mooc-rr/blob/master/documents/tuto_emacs_windows/tuto_emacs_windows.md#24-%C3%89crire-dans-le-journal)
# **1 Installation et configuration des différents outils**
## 1.1 Installer et configurer Emacs
- Installer [Emacs modifié pour Windows](https://vigou3.github.io/emacs-modified-windows/)
- version 26.1 pour Windows 64 bits
- version 25.2 pour Windows 32 bits
- Télécharger le fichier [rr_org_archive.tgz](https://app-learninglab.inria.fr/gitlab/learning-lab/mooc-rr-ressources/raw/master/module2/ressources/rr_org_archive.tgz)
Il faut noter qu'avec 7z il faut décompresser l'archive deux fois : une première fois crée une archive `rr_org_archive.tar` et une deuxième fois crée un dossier `rr_org` contenant les fichiers `init.el` et `journal.org`.
- Lancer Emacs
![emacs](documents/tuto_emacs_windows/images/emacs.png)
- Emacs crée le répertoire `C:\Users\***\.emacs.d`
- Placer le fichier `init.el` dedans
- Lancer Emacs
![scratch](documents/tuto_emacs_windows/images/scratch.png)
- Créer un dossier `C:\Users\***\org` dans l'explorateur Windows
- Placer le fichier `journal.org` dedans
---
## 1.2 Ajouter les chemins de R et Python dans dans la variable PATH de Windows
La façon de procéder est très bien expliquée [ici](http://sametmax.com/ajouter-un-chemin-a-la-variable-denvironnement-path-sous-windows/).
---
## 1.3 Installer et configurer matplotlib (librairie graphique Python)
- Installer la librairie `matplotlib`
- Ouvrir une invite de commande dos
- Exécuter la commande suivante
```
python -m pip install -U matplotlib
```
![install_matplotlib](documents/tuto_emacs_windows/images/install_matplotlib.png)
- Désactiver les plots interactifs dans matplotlib
Pour ce faire, il faut d'abord savoir où se trouve le fichier de configuration de matplotlib sous Windows.
Exécuter le code suivant sous Python
```
import matplotlib
matplotlib.matplotlib_fname()
```
![matplotlib](documents/tuto_emacs_windows/images/matplotlib.png)
Ouvrir le fichier `matplotlibrc` et ajouter un `#` devant la ligne qui commence par `backend`, ce qui correspond à utiliser la valeur par défaut `Agg`
---
---
# **2 Utilisation d'Emacs**
## 2.1 Exécuter des commandes dos
- Lancer Emacs
- Créer un fichier toto.org dans l'explorateur Windows
- Ouvrir le fichier toto.org dans Emacs et saisir `<b` + `tab`.
![shell](documents/tuto_emacs_windows/images/shell.png)
- Le raccourci `C-g` permet de sortir d'une commande
---
## 2.2 Exécuter du code R
- Le raccourci `<r` + `tab` permet d'exécuter une commande R
![commandeR1](documents/tuto_emacs_windows/images/commandeR1.png)
Emacs demande le dossier de démarrage. Garder le dossier par défaut (`Entrée`)
![commandeR2](documents/tuto_emacs_windows/images/commandeR2.png)
- Le raccourci `<R` + `tab` permet d'exécuter une commande graphique R
(org-babel-temp-file \"figure\" \".png\") génère un nom de fichier temporaire.
Il faut indiquer un nom de fichier pour que l'image soit chargée lors de la réouverture du fichier Emacs.
![graphiqueR](documents/tuto_emacs_windows/images/graphiqueR.png)
Remarque : Il peut être pratique de remplacer `(org-babel-temp-file \"figure\" \".png\")` par `"D:/temp/figure.png\"` dans dans le fichier `init.el` (raccourci `<R` et `<PP`).
---
## 2.3 Exécuter du code Python
- Voir la page [Python Source Code Blocks in Org Mode](https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-python.html)
- Le raccourci `<p` + `tab` permet d'exécuter du code Python en mode "non-session"
![python1](documents/tuto_emacs_windows/images/python1.png)
- Le raccourci `<P` + `tab` permet d'exécuter du code Python en mode "session" pour conserver les valeurs d'un bloc de code à l'autre.
![python2](documents/tuto_emacs_windows/images/python2.png)
- Le raccourci `<PP` + `tab` permet d'exécuter un graphique Python
![python4](documents/tuto_emacs_windows/images/python4.png)
---
## 2.4 Écrire dans le journal
- Ouvrir le fichier `journal.org`
- Le raccourci `C-c c` ouvre un menu demandant si on veut écrire dans la todo list ou dans le journal
![ctrl_c_c](documents/tuto_emacs_windows/images/ctrl_c_c.png)
- On appuie sur `j` pour écrire dans le journal. Un mini buffer est ouvert et Emacs modifie le fichier `journal.org` pour créer une entrée à la bonne date. On peut commencer à écrire dans le journal.
![org_mode](documents/tuto_emacs_windows/images/org_mode.png)
`C-c C-c` pour enregistrer les modifications.
- La combinaison `Alt`+ `flèche gauche` ou `flèche droite` permet de décaler les puces à gauche ou à droite.
- Penser à enregistrer avant de quitter !
# Ressources complémentaires
- [Installer Git et Gitlab](https://www.fun-mooc.fr/courses/course-v1:inria+41016+session01bis/courseware/66bc811404b8481da5f794de54681c5e/f6580ad8e997400faeffe9af4fd37063/)
- [Définir un proxy dans Git](https://gist.github.com/evantoli/f8c23a37eb3558ab8765)
- [Mémoriser son mot de passe](http://blog.lecacheur.com/2015/11/05/git-le-b-a-ba-memoriser-son-mot-de-passe/)
- [Livre Pro Git](https://git-scm.com/book/fr/v2/)
# Configurer Gitlab
- Accéder à [Gitlab](https://www.fun-mooc.fr/courses/course-v1:inria+41016+session01bis/xblock/block-v1:inria+41016+session01bis+type@lti+block@05a0ce425f1741e5bee5049040f70529/handler/preview_handler)
![sign_in](documents/tuto_git_gtlab/images/sign_in.png)
- NB : Il faut accéder à Gitlab depuis la plateforme FUN. On obtient une erreur 405 en accédant directement à la page https://app-learninglab.inria.fr/gitlab/users/sign_in.
![erreur 405](documents/tuto_git_gtlab/images/erreur405.png)
- Cliquer sur **Sign in**
![projects](documents/tuto_git_gtlab/images/projects.png)
La grande chaîne de caractères remplacée ici par xxx est le login qu'il faudra utiliser dans Git pour accéder à Gitlab.
- Pour définir le mot de passe, il faut aller dans settings
![settings](documents/tuto_git_gtlab/images/settings.png)
- puis dans l'onglet Profile pour définir une adresse mail valide
![profile](documents/tuto_git_gtlab/images/profile.png)
Vous allez recevoir un email de confirmation et il faut cliquer sur le lien de validation.
- Une fois l'adresse validée, elle apparaît comme vérifiée et adresse principale dans l'onglet Emails
![mail](documents/tuto_git_gtlab/images/mail.png)
- Vous pouvez alors cliquer sur « I forgot my password » dans l’onglet password
![password](documents/tuto_git_gtlab/images/password.png)
Vous allez recevoir un email permettant de réinitialiser le mot de passe.
---
# Configurer Git
## Opérations de configuration à faire sur Git (parcours RStudio et OrgMode)
- Enregistrer l'email et le nom de l'utilisateur
```
git config --global --user.email you@example.com
git config --global --user.name Your Name
```
NB : Ne pas mettre de guillemets.
Ces deux paramètres sont obligatoire pour pouvoir commiter sinon on obtient le message suivant
![commit3](documents/tuto_git_gtlab/images/commit3.png)
- Si vous êtes derrière un proxy, il faut le définir dans Git
```
git config --global http.proxy http://proxy.server.com:port
```
On peut aussi définir le proxyUsername pour n'avoir que le mot de passe à saisir
```
git config --global http.proxy http://proxyUsername@proxy.server.com:port
```
- Option pour que le login et mot de passe soient enregistrés pendant 1 heure
```
git config --global credential.helper "cache --timeout=3600"
```
## Commandes pour afficher et effacer des options de configuration (parcours RStudio et OrgMode)
- Afficher les paramètres
```
git config --list
```
- Effacer les mots de passe enregistrés
```
git config --system --unset credential.helper
```
- Effacer le proxy
```
git config --global --unset http.proxy
```
- Effacer le message "git: 'credential-cache' is not a git command."
```
git config --global --unset credential.helper
```
## Opérations de transfert entre Git et Gitlab (parcours OrgMode)
- Récupérer l'adresse du dépôt
![adresse_depot](documents/tuto_git_gtlab/images/adresse_depot.png)
- Cloner le dépôt
```
git clone https://app-learninglab.inria.fr/gitlab/xxx/mooc-rr.git
```
On peut aussi définir l'identifiant pour n'avoir que le mot de passe à saisir
```
git clone https://xxx@app-learninglab.inria.fr/gitlab/xxx/mooc-rr.git
```
Un répertoire `mooc-rr` est créé sur votre ordinateur.
- Se placer dans le répertoire mooc-rr
```
cd mooc-rr
```
- Lister les fichiers du répertoire
```
ls (Unix)
dir (Windows)
```
- Synchroniser Git vers Gitlab
Il faut suivre les fichiers (commande `git add`) et les commiter (commande `git commit`) en local pour pouvoir les transférer sur serveur. La commande `git status` indique le statut des fichiers.
Soit un fichier `fichier.txt` à la racine du répertoire mooc-rr.
```
git status
```
![status1](documents/tuto_git_gtlab/images/status1.png)
```
git add fichier.txt
git status
```
![status2](documents/tuto_git_gtlab/images/status2.png)
```
git commit -m "message commit"
```
![commit_git](documents/tuto_git_gtlab/images/commit_git.png)
```
git status
```
![status3](documents/tuto_git_gtlab/images/status3.png)
On peut alors faire le `git push`pour transférer le fichier sur Gitlab.
```
git push
```
Demande le mot de passe
- NB : Il n'est pas possible de synchroniser vers Gitlab si des modifications ont été faites sur Gitlab et n'ont pas été répercupées en local
![rejected](documents/tuto_git_gtlab/images/rejected.png)
- Synchroniser Gitlab vers Git
```
git pull
```
\ No newline at end of file
*Import in Python*
```python
import pandas as pd
data_url = "https://forge.scilab.org/index.php/p/rdataset/source/file/master/csv/datasets/cars.csv"
df_python = pd.read_csv(data_url)
df_python.drop(df_python.columns[[0]], axis=1, inplace=True)
```
*Summary in SAS*
```python
import saspy
session_sas = saspy.SASsession(cfgname='winlocal')
```
SAS Connection established. Subprocess id is 6920
```python
session_sas
```
Access Method = IOM
SAS Config name = winlocal
WORK Path = /
SAS Version = 9.04.01M1P12042013
SASPy Version = 2.2.7
Teach me SAS = False
Batch = False
Results = Pandas
SAS Session Encoding = WLATIN1
Python Encoding value = windows-1252
```python
df_sas = session_sas.df2sd(df_python)
df_sas.describe()
```
---------------------------------------------------------------------------
UnicodeDecodeError Traceback (most recent call last)
<ipython-input-4-efc5eac237bd> in <module>()
1 df_sas = session_sas.df2sd(df_python)
----> 2 df_sas.describe()
f:\program files\python\python37-32\lib\site-packages\saspy\sasbase.py in describe(self)
1508 :return:
1509 """
-> 1510 return self.means()
1511
1512 def means(self):
f:\program files\python\python37-32\lib\site-packages\saspy\sasbase.py in means(self)
1527 code = "proc means data=%s.%s %s stackodsoutput n nmiss median mean std min p25 p50 p75 max; ods output Summary=work._summary; run;" % (
1528 self.libref, self.table, self._dsopts())
-> 1529 return self._returnPD(code, '_summary')
1530 else:
1531 if self.HTML:
f:\program files\python\python37-32\lib\site-packages\saspy\sasbase.py in _returnPD(self, code, tablename, **kwargs)
1107 if 'libref' in kwargs:
1108 libref = kwargs['libref']
-> 1109 ll = self.sas._io.submit(code)
1110 check, errorMsg = self._checkLogForError(ll['LOG'])
1111 if not check:
f:\program files\python\python37-32\lib\site-packages\saspy\sasioiom.py in submit(self, code, results, prompt)
875 self.stdin[0].send(odsclose+logcodei.encode()+b'tom says EOL='+logcodeo+b'\n')
876
--> 877 lstf = lstf.decode()
878 logf = logf.decode()
879
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe8 in position 31798: invalid continuation byte
***Import in Python***
```python
import pandas as pd
data_url = "https://forge.scilab.org/index.php/p/rdataset/source/file/master/csv/datasets/cars.csv"
df_python = pd.read_csv(data_url)
df_python.drop(df_python.columns[[0]], axis=1, inplace=True)
```
***Describe in SAS***
```python
import saspy
session_sas = saspy.SASsession(cfgname='winlocal')
```
SAS Connection established. Subprocess id is 6784
```python
session_sas
```
Access Method = IOM
SAS Config name = winlocal
WORK Path = /
SAS Version = 9.04.01M1P12042013
SASPy Version = 2.2.6
Teach me SAS = False
Batch = False
Results = Pandas
SAS Session Encoding = WLATIN1
Python Encoding value = windows-1252
```python
df_sas = session_sas.df2sd(df_python)
df_sas.describe()
```
<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>Variable</th>
<th>N</th>
<th>NMiss</th>
<th>Median</th>
<th>Mean</th>
<th>StdDev</th>
<th>Min</th>
<th>P25</th>
<th>P50</th>
<th>P75</th>
<th>Max</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>speed</td>
<td>50</td>
<td>0</td>
<td>15</td>
<td>15.40</td>
<td>5.287644</td>
<td>4</td>
<td>12</td>
<td>15</td>
<td>19</td>
<td>25</td>
</tr>
<tr>
<th>1</th>
<td>dist</td>
<td>50</td>
<td>0</td>
<td>36</td>
<td>42.98</td>
<td>25.769377</td>
<td>2</td>
<td>26</td>
<td>36</td>
<td>56</td>
<td>120</td>
</tr>
</tbody>
</table>
</div>
This source diff could not be displayed because it is too large. You can view the blob instead.
---
output:
pdf_document: default
html_document: default
---
# Test SASkernel
```sas
proc print data=sashelp.class (obs=3);
run;
```
SAS Connection established. Subprocess id is 5852
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="windows-1252"/>
<meta content="SAS 9.4" name="generator"/>
<title>Sortie SAS</title>
<style>
/*<![CDATA[*/
.body.c section > table, .body.c section > pre, .body.c div > table,
.body.c div > pre, .body.c article > table, .body.c article > pre,
.body.j section > table, .body.j section > pre, .body.j div > table,
.body.j div > pre, .body.j article > table, .body.j article > pre,
.body.c p.note, .body.c p.warning, .body.c p.error, .body.c p.fatal,
.body.j p.note, .body.j p.warning, .body.j p.error, .body.j p.fatal,
.body.c > table.layoutcontainer, .body.j > table.layoutcontainer { margin-left: auto; margin-right: auto }
.layoutregion.l table, .layoutregion.l pre, .layoutregion.l p.note,
.layoutregion.l p.warning, .layoutregion.l p.error, .layoutregion.l p.fatal { margin-left: 0 }
.layoutregion.c table, .layoutregion.c pre, .layoutregion.c p.note,
.layoutregion.c p.warning, .layoutregion.c p.error, .layoutregion.c p.fatal { margin-left: auto; margin-right: auto }
.layoutregion.r table, .layoutregion.r pre, .layoutregion.r p.note,
.layoutregion.r table, .layoutregion.r pre, .layoutregion.r p.note,
.layoutregion.r p.warning, .layoutregion.r p.error, .layoutregion.r p.fatal { margin-right: 0 }
article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { display: block }
html{ font-size: 100% }
.body { margin: 1em; font-size: 13px; line-height: 1.231 }
sup { position: relative; vertical-align: baseline; bottom: 0.25em; font-size: 0.8em }
sub { position: relative; vertical-align: baseline; top: 0.25em; font-size: 0.8em }
ul, ol { margin: 1em 0; padding: 0 0 0 40px }
dd { margin: 0 0 0 40px }
nav ul, nav ol { list-style: none; list-style-image: none; margin: 0; padding: 0 }
img { border: 0; vertical-align: middle }
svg:not(:root) { overflow: hidden }
figure { margin: 0 }
table { border-collapse: collapse; border-spacing: 0 }
.layoutcontainer { border-collapse: separate; border-spacing: 0 }
p { margin-top: 0; text-align: left }
span { text-align: left }
table { margin-bottom: 1em }
td, th { text-align: left; padding: 3px 6px; vertical-align: top }
td[class$="fixed"], th[class$="fixed"] { white-space: pre }
section, article { padding-top: 1px }
hr.pagebreak { height: 0px; border: 0; border-bottom: 1px solid #c0c0c0; margin: 1em 0 }
.stacked-value { text-align: left; display: block }
.stacked-cell > .stacked-value, td.data > td.data, th.data > td.data, th.data > th.data, td.data > th.data, th.header > th.header { border: 0 }
.systitleandfootercontainer { white-space: nowrap; margin-bottom: 1em }
.systitleandfootercontainer > p { margin: 0 }
.systitleandfootercontainer > p > span { display: inline-block; width: 100%; white-space: normal }
.batch { display: table }
.toc { display: none }
.proc_note_group, .proc_title_group { margin-bottom: 1em }
p.proctitle { margin: 0 }
p.note, p.warning, p.error, p.fatal { display: table }
.notebanner, .warnbanner, .errorbanner, .fatalbanner,
.notecontent, .warncontent, .errorcontent, .fatalcontent { display: table-cell; padding: 0.5em }
.notebanner, .warnbanner, .errorbanner, .fatalbanner { padding-right: 0 }
.body > div > ol li { text-align: left }
.c { text-align: center }
.r { text-align: right }
.l { text-align: left }
.j { text-align: justify }
.d { text-align: right }
.b { vertical-align: bottom }
.m { vertical-align: middle }
.t { vertical-align: top }
.aftercaption {
background-color: #fafbfe;
border-spacing: 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
padding-top: 4pt;
}
.batch > colgroup {
border-left: 1px solid #c1c1c1;
border-right: 1px solid #c1c1c1;
}
.batch > tbody, .batch > thead, .batch > tfoot {
border-top: 1px solid #c1c1c1;
border-bottom: 1px solid #c1c1c1;
}
.batch { border: hidden; }
.batch {
background-color: #fafbfe;
border: 1px solid #c1c1c1;
border-collapse: separate;
border-spacing: 1px;
color: #000000;
font-family: 'SAS Monospace', 'Courier New', Courier, monospace;
font-size: normal;
font-style: normal;
font-weight: normal;
padding: 7px;
}
.beforecaption {
background-color: #fafbfe;
border-spacing: 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.body {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
margin-left: 8px;
margin-right: 8px;
}
.bodydate {
background-color: #fafbfe;
border-spacing: 0;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
text-align: right;
vertical-align: top;
width: 100%;
}
.bycontentfolder {
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: none;
margin-left: 6pt;
}
.byline {
background-color: #fafbfe;
border-spacing: 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.bylinecontainer > col, .bylinecontainer > colgroup > col, .bylinecontainer > colgroup, .bylinecontainer > tr, .bylinecontainer > * > tr, .bylinecontainer > thead, .bylinecontainer > tbody, .bylinecontainer > tfoot { border: none; }
.bylinecontainer {
background-color: #fafbfe;
border: none;
border-spacing: 1px;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
width: 100%;
}
.caption {
background-color: #fafbfe;
border-spacing: 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.cell, .container {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.contentfolder, .contentitem {
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: none;
margin-left: 6pt;
}
.contentproclabel, .contentprocname {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.contents {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: decimal;
margin-left: 8px;
margin-right: 8px;
}
.contentsdate {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
width: 100%;
}
.contenttitle {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: italic;
font-weight: bold;
}
.continued {
background-color: #fafbfe;
border-spacing: 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
width: 100%;
}
.data, .dataemphasis {
background-color: #ffffff;
border-color: #c1c1c1;
border-style: solid;
border-width: 0 1px 1px 0;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.dataemphasisfixed {
background-color: #ffffff;
border-color: #c1c1c1;
border-style: solid;
border-width: 0 1px 1px 0;
font-family: 'Courier New', Courier, monospace;
font-size: normal;
font-style: italic;
font-weight: normal;
}
.dataempty {
background-color: #ffffff;
border-color: #c1c1c1;
border-style: solid;
border-width: 0 1px 1px 0;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.datafixed {
background-color: #ffffff;
border-color: #c1c1c1;
border-style: solid;
border-width: 0 1px 1px 0;
font-family: 'Courier New', Courier;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.datastrong {
background-color: #ffffff;
border-color: #c1c1c1;
border-style: solid;
border-width: 0 1px 1px 0;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.datastrongfixed {
background-color: #ffffff;
border-color: #c1c1c1;
border-style: solid;
border-width: 0 1px 1px 0;
color: #000000;
font-family: 'Courier New', Courier, monospace;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.date {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
width: 100%;
}
.document {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.errorbanner {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.errorcontent {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.errorcontentfixed {
background-color: #fafbfe;
color: #112277;
font-family: 'Courier New', Courier;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.extendedpage {
background-color: #fafbfe;
border-style: solid;
border-width: 1pt;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: italic;
font-weight: normal;
text-align: center;
}
.fatalbanner {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.fatalcontent {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.fatalcontentfixed {
background-color: #fafbfe;
color: #112277;
font-family: 'Courier New', Courier;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.folderaction {
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: none;
margin-left: 6pt;
}
.footer {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.footeremphasis {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: italic;
font-weight: normal;
}
.footeremphasisfixed {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: 'Courier New', Courier, monospace;
font-size: normal;
font-style: italic;
font-weight: normal;
}
.footerempty {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.footerfixed {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: 'Courier New', Courier;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.footerstrong {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.footerstrongfixed {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: 'Courier New', Courier, monospace;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.frame {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.graph > colgroup {
border-left: 1px solid #c1c1c1;
border-right: 1px solid #c1c1c1;
}
.graph > tbody, .graph > thead, .graph > tfoot {
border-top: 1px solid #c1c1c1;
border-bottom: 1px solid #c1c1c1;
}
.graph { border: hidden; }
.graph {
background-color: #fafbfe;
border: 1px solid #c1c1c1;
border-collapse: separate;
border-spacing: 1px;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.header {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.headeremphasis {
background-color: #d8dbd3;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: italic;
font-weight: normal;
}
.headeremphasisfixed {
background-color: #d8dbd3;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #000000;
font-family: 'Courier New', Courier, monospace;
font-size: normal;
font-style: italic;
font-weight: normal;
}
.headerempty {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.headerfixed {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: 'Courier New', Courier;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.headersandfooters {
background-color: #edf2f9;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.headerstrong {
background-color: #d8dbd3;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.headerstrongfixed {
background-color: #d8dbd3;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #000000;
font-family: 'Courier New', Courier, monospace;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.index {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.indexaction, .indexitem {
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: none;
margin-left: 6pt;
}
.indexprocname {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.indextitle {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: italic;
font-weight: bold;
}
.layoutcontainer > col, .layoutcontainer > colgroup > col, .layoutcontainer > colgroup, .layoutcontainer > tr, .layoutcontainer > * > tr, .layoutcontainer > thead, .layoutcontainer > tbody, .layoutcontainer > tfoot, .layoutregion > col, .layoutregion > colgroup > col, .layoutregion > colgroup, .layoutregion > tr, .layoutregion > * > tr, .layoutregion > thead, .layoutregion > tbody, .layoutregion > tfoot { border: none; }
.layoutcontainer, .layoutregion {
border: none;
border-spacing: 30px;
}
.linecontent {
background-color: #fafbfe;
border-color: #c1c1c1;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.list {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: disc;
}
.list10 {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: square;
}
.list2 {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: circle;
}
.list3, .list4, .list5, .list6, .list7, .list8, .list9 {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: square;
}
.listitem {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: disc;
}
.listitem10 {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: square;
}
.listitem2 {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: circle;
}
.listitem3, .listitem4, .listitem5, .listitem6, .listitem7, .listitem8, .listitem9 {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: square;
}
.note {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.notebanner {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.notecontent {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.notecontentfixed {
background-color: #fafbfe;
color: #112277;
font-family: 'Courier New', Courier;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.output > colgroup {
border-left: 1px solid #c1c1c1;
border-right: 1px solid #c1c1c1;
}
.output > tbody, .output > thead, .output > tfoot {
border-top: 1px solid #c1c1c1;
border-bottom: 1px solid #c1c1c1;
}
.output { border: hidden; }
.output {
background-color: #fafbfe;
border: 1px solid #c1c1c1;
border-collapse: separate;
border-spacing: 1px;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.pageno {
background-color: #fafbfe;
border-spacing: 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
text-align: right;
vertical-align: top;
}
.pages {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: decimal;
margin-left: 8px;
margin-right: 8px;
}
.pagesdate {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
width: 100%;
}
.pagesitem {
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: none;
margin-left: 6pt;
}
.pagesproclabel, .pagesprocname {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.pagestitle {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: italic;
font-weight: bold;
}
.paragraph {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.parskip > col, .parskip > colgroup > col, .parskip > colgroup, .parskip > tr, .parskip > * > tr, .parskip > thead, .parskip > tbody, .parskip > tfoot { border: none; }
.parskip {
border: none;
border-spacing: 0;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.prepage {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
text-align: left;
}
.proctitle {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.proctitlefixed {
background-color: #fafbfe;
color: #112277;
font-family: 'Courier New', Courier, monospace;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.rowfooter {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.rowfooteremphasis {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: italic;
font-weight: normal;
}
.rowfooteremphasisfixed {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: 'Courier New', Courier, monospace;
font-size: normal;
font-style: italic;
font-weight: normal;
}
.rowfooterempty {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.rowfooterfixed {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: 'Courier New', Courier;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.rowfooterstrong {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.rowfooterstrongfixed {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: 'Courier New', Courier, monospace;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.rowheader {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.rowheaderemphasis {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: italic;
font-weight: normal;
}
.rowheaderemphasisfixed {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: 'Courier New', Courier, monospace;
font-size: normal;
font-style: italic;
font-weight: normal;
}
.rowheaderempty {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.rowheaderfixed {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: 'Courier New', Courier;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.rowheaderstrong {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.rowheaderstrongfixed {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: 'Courier New', Courier, monospace;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.systemfooter, .systemfooter10, .systemfooter2, .systemfooter3, .systemfooter4, .systemfooter5, .systemfooter6, .systemfooter7, .systemfooter8, .systemfooter9 {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.systemtitle, .systemtitle10, .systemtitle2, .systemtitle3, .systemtitle4, .systemtitle5, .systemtitle6, .systemtitle7, .systemtitle8, .systemtitle9 {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: small;
font-style: normal;
font-weight: bold;
}
.systitleandfootercontainer > col, .systitleandfootercontainer > colgroup > col, .systitleandfootercontainer > colgroup, .systitleandfootercontainer > tr, .systitleandfootercontainer > * > tr, .systitleandfootercontainer > thead, .systitleandfootercontainer > tbody, .systitleandfootercontainer > tfoot { border: none; }
.systitleandfootercontainer {
background-color: #fafbfe;
border: none;
border-spacing: 1px;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
width: 100%;
}
.table > col, .table > colgroup > col {
border-left: 1px solid #c1c1c1;
border-right: 0 solid #c1c1c1;
}
.table > tr, .table > * > tr {
border-top: 1px solid #c1c1c1;
border-bottom: 0 solid #c1c1c1;
}
.table { border: hidden; }
.table {
border-color: #c1c1c1;
border-style: solid;
border-width: 1px 0 0 1px;
border-collapse: collapse;
border-spacing: 0;
}
.titleandnotecontainer > col, .titleandnotecontainer > colgroup > col, .titleandnotecontainer > colgroup, .titleandnotecontainer > tr, .titleandnotecontainer > * > tr, .titleandnotecontainer > thead, .titleandnotecontainer > tbody, .titleandnotecontainer > tfoot { border: none; }
.titleandnotecontainer {
background-color: #fafbfe;
border: none;
border-spacing: 1px;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
width: 100%;
}
.titlesandfooters {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.usertext {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.warnbanner {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.warncontent {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.warncontentfixed {
background-color: #fafbfe;
color: #112277;
font-family: 'Courier New', Courier;
font-size: normal;
font-style: normal;
font-weight: normal;
}
/*]]>*/
</style>
</head>
<body class="l body">
<h1 class="body toc">Sortie SAS</h1>
<section data-name="Print" data-sec-type="proc">
<div id="IDX" class="systitleandfootercontainer" style="border-spacing: 1px">
<p><span class="c systemtitle">Le Système SAS</span> </p>
</div>
<h1 class="contentprocname toc">La PRINT Procédure</h1>
<article>
<h1 class="contentitem toc">Table SASHELP.CLASS</h1>
<table class="table" style="border-spacing: 0">
<colgroup><col/></colgroup><colgroup><col/><col/><col/><col/><col/></colgroup>
<thead>
<tr>
<th class="r header" scope="col">Obs.</th>
<th class="header" scope="col">Name</th>
<th class="header" scope="col">Sex</th>
<th class="r header" scope="col">Age</th>
<th class="r header" scope="col">Height</th>
<th class="r header" scope="col">Weight</th>
</tr>
</thead>
<tbody>
<tr>
<th class="r rowheader" scope="row">1</th>
<td class="data">Alfred</td>
<td class="data">M</td>
<td class="r data">14</td>
<td class="r data">69.0</td>
<td class="r data">112.5</td>
</tr>
<tr>
<th class="r rowheader" scope="row">2</th>
<td class="data">Alice</td>
<td class="data">F</td>
<td class="r data">13</td>
<td class="r data">56.5</td>
<td class="r data">84.0</td>
</tr>
<tr>
<th class="r rowheader" scope="row">3</th>
<td class="data">Barbara</td>
<td class="data">F</td>
<td class="r data">13</td>
<td class="r data">65.3</td>
<td class="r data">98.0</td>
</tr>
</tbody>
</table>
</article>
</section>
</body>
</html>
```sas
proc means data=sashelp.class;
var Age Height Weight;
run;
```
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="windows-1252"/>
<meta content="SAS 9.4" name="generator"/>
<title>Sortie SAS</title>
<style>
/*<![CDATA[*/
.body.c section > table, .body.c section > pre, .body.c div > table,
.body.c div > pre, .body.c article > table, .body.c article > pre,
.body.j section > table, .body.j section > pre, .body.j div > table,
.body.j div > pre, .body.j article > table, .body.j article > pre,
.body.c p.note, .body.c p.warning, .body.c p.error, .body.c p.fatal,
.body.j p.note, .body.j p.warning, .body.j p.error, .body.j p.fatal,
.body.c > table.layoutcontainer, .body.j > table.layoutcontainer { margin-left: auto; margin-right: auto }
.layoutregion.l table, .layoutregion.l pre, .layoutregion.l p.note,
.layoutregion.l p.warning, .layoutregion.l p.error, .layoutregion.l p.fatal { margin-left: 0 }
.layoutregion.c table, .layoutregion.c pre, .layoutregion.c p.note,
.layoutregion.c p.warning, .layoutregion.c p.error, .layoutregion.c p.fatal { margin-left: auto; margin-right: auto }
.layoutregion.r table, .layoutregion.r pre, .layoutregion.r p.note,
.layoutregion.r table, .layoutregion.r pre, .layoutregion.r p.note,
.layoutregion.r p.warning, .layoutregion.r p.error, .layoutregion.r p.fatal { margin-right: 0 }
article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { display: block }
html{ font-size: 100% }
.body { margin: 1em; font-size: 13px; line-height: 1.231 }
sup { position: relative; vertical-align: baseline; bottom: 0.25em; font-size: 0.8em }
sub { position: relative; vertical-align: baseline; top: 0.25em; font-size: 0.8em }
ul, ol { margin: 1em 0; padding: 0 0 0 40px }
dd { margin: 0 0 0 40px }
nav ul, nav ol { list-style: none; list-style-image: none; margin: 0; padding: 0 }
img { border: 0; vertical-align: middle }
svg:not(:root) { overflow: hidden }
figure { margin: 0 }
table { border-collapse: collapse; border-spacing: 0 }
.layoutcontainer { border-collapse: separate; border-spacing: 0 }
p { margin-top: 0; text-align: left }
span { text-align: left }
table { margin-bottom: 1em }
td, th { text-align: left; padding: 3px 6px; vertical-align: top }
td[class$="fixed"], th[class$="fixed"] { white-space: pre }
section, article { padding-top: 1px }
hr.pagebreak { height: 0px; border: 0; border-bottom: 1px solid #c0c0c0; margin: 1em 0 }
.stacked-value { text-align: left; display: block }
.stacked-cell > .stacked-value, td.data > td.data, th.data > td.data, th.data > th.data, td.data > th.data, th.header > th.header { border: 0 }
.systitleandfootercontainer { white-space: nowrap; margin-bottom: 1em }
.systitleandfootercontainer > p { margin: 0 }
.systitleandfootercontainer > p > span { display: inline-block; width: 100%; white-space: normal }
.batch { display: table }
.toc { display: none }
.proc_note_group, .proc_title_group { margin-bottom: 1em }
p.proctitle { margin: 0 }
p.note, p.warning, p.error, p.fatal { display: table }
.notebanner, .warnbanner, .errorbanner, .fatalbanner,
.notecontent, .warncontent, .errorcontent, .fatalcontent { display: table-cell; padding: 0.5em }
.notebanner, .warnbanner, .errorbanner, .fatalbanner { padding-right: 0 }
.body > div > ol li { text-align: left }
.c { text-align: center }
.r { text-align: right }
.l { text-align: left }
.j { text-align: justify }
.d { text-align: right }
.b { vertical-align: bottom }
.m { vertical-align: middle }
.t { vertical-align: top }
.aftercaption {
background-color: #fafbfe;
border-spacing: 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
padding-top: 4pt;
}
.batch > colgroup {
border-left: 1px solid #c1c1c1;
border-right: 1px solid #c1c1c1;
}
.batch > tbody, .batch > thead, .batch > tfoot {
border-top: 1px solid #c1c1c1;
border-bottom: 1px solid #c1c1c1;
}
.batch { border: hidden; }
.batch {
background-color: #fafbfe;
border: 1px solid #c1c1c1;
border-collapse: separate;
border-spacing: 1px;
color: #000000;
font-family: 'SAS Monospace', 'Courier New', Courier, monospace;
font-size: normal;
font-style: normal;
font-weight: normal;
padding: 7px;
}
.beforecaption {
background-color: #fafbfe;
border-spacing: 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.body {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
margin-left: 8px;
margin-right: 8px;
}
.bodydate {
background-color: #fafbfe;
border-spacing: 0;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
text-align: right;
vertical-align: top;
width: 100%;
}
.bycontentfolder {
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: none;
margin-left: 6pt;
}
.byline {
background-color: #fafbfe;
border-spacing: 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.bylinecontainer > col, .bylinecontainer > colgroup > col, .bylinecontainer > colgroup, .bylinecontainer > tr, .bylinecontainer > * > tr, .bylinecontainer > thead, .bylinecontainer > tbody, .bylinecontainer > tfoot { border: none; }
.bylinecontainer {
background-color: #fafbfe;
border: none;
border-spacing: 1px;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
width: 100%;
}
.caption {
background-color: #fafbfe;
border-spacing: 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.cell, .container {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.contentfolder, .contentitem {
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: none;
margin-left: 6pt;
}
.contentproclabel, .contentprocname {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.contents {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: decimal;
margin-left: 8px;
margin-right: 8px;
}
.contentsdate {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
width: 100%;
}
.contenttitle {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: italic;
font-weight: bold;
}
.continued {
background-color: #fafbfe;
border-spacing: 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
width: 100%;
}
.data, .dataemphasis {
background-color: #ffffff;
border-color: #c1c1c1;
border-style: solid;
border-width: 0 1px 1px 0;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.dataemphasisfixed {
background-color: #ffffff;
border-color: #c1c1c1;
border-style: solid;
border-width: 0 1px 1px 0;
font-family: 'Courier New', Courier, monospace;
font-size: normal;
font-style: italic;
font-weight: normal;
}
.dataempty {
background-color: #ffffff;
border-color: #c1c1c1;
border-style: solid;
border-width: 0 1px 1px 0;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.datafixed {
background-color: #ffffff;
border-color: #c1c1c1;
border-style: solid;
border-width: 0 1px 1px 0;
font-family: 'Courier New', Courier;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.datastrong {
background-color: #ffffff;
border-color: #c1c1c1;
border-style: solid;
border-width: 0 1px 1px 0;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.datastrongfixed {
background-color: #ffffff;
border-color: #c1c1c1;
border-style: solid;
border-width: 0 1px 1px 0;
color: #000000;
font-family: 'Courier New', Courier, monospace;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.date {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
width: 100%;
}
.document {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.errorbanner {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.errorcontent {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.errorcontentfixed {
background-color: #fafbfe;
color: #112277;
font-family: 'Courier New', Courier;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.extendedpage {
background-color: #fafbfe;
border-style: solid;
border-width: 1pt;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: italic;
font-weight: normal;
text-align: center;
}
.fatalbanner {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.fatalcontent {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.fatalcontentfixed {
background-color: #fafbfe;
color: #112277;
font-family: 'Courier New', Courier;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.folderaction {
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: none;
margin-left: 6pt;
}
.footer {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.footeremphasis {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: italic;
font-weight: normal;
}
.footeremphasisfixed {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: 'Courier New', Courier, monospace;
font-size: normal;
font-style: italic;
font-weight: normal;
}
.footerempty {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.footerfixed {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: 'Courier New', Courier;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.footerstrong {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.footerstrongfixed {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: 'Courier New', Courier, monospace;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.frame {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.graph > colgroup {
border-left: 1px solid #c1c1c1;
border-right: 1px solid #c1c1c1;
}
.graph > tbody, .graph > thead, .graph > tfoot {
border-top: 1px solid #c1c1c1;
border-bottom: 1px solid #c1c1c1;
}
.graph { border: hidden; }
.graph {
background-color: #fafbfe;
border: 1px solid #c1c1c1;
border-collapse: separate;
border-spacing: 1px;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.header {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.headeremphasis {
background-color: #d8dbd3;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: italic;
font-weight: normal;
}
.headeremphasisfixed {
background-color: #d8dbd3;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #000000;
font-family: 'Courier New', Courier, monospace;
font-size: normal;
font-style: italic;
font-weight: normal;
}
.headerempty {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.headerfixed {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: 'Courier New', Courier;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.headersandfooters {
background-color: #edf2f9;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.headerstrong {
background-color: #d8dbd3;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.headerstrongfixed {
background-color: #d8dbd3;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #000000;
font-family: 'Courier New', Courier, monospace;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.index {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.indexaction, .indexitem {
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: none;
margin-left: 6pt;
}
.indexprocname {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.indextitle {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: italic;
font-weight: bold;
}
.layoutcontainer > col, .layoutcontainer > colgroup > col, .layoutcontainer > colgroup, .layoutcontainer > tr, .layoutcontainer > * > tr, .layoutcontainer > thead, .layoutcontainer > tbody, .layoutcontainer > tfoot, .layoutregion > col, .layoutregion > colgroup > col, .layoutregion > colgroup, .layoutregion > tr, .layoutregion > * > tr, .layoutregion > thead, .layoutregion > tbody, .layoutregion > tfoot { border: none; }
.layoutcontainer, .layoutregion {
border: none;
border-spacing: 30px;
}
.linecontent {
background-color: #fafbfe;
border-color: #c1c1c1;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.list {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: disc;
}
.list10 {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: square;
}
.list2 {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: circle;
}
.list3, .list4, .list5, .list6, .list7, .list8, .list9 {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: square;
}
.listitem {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: disc;
}
.listitem10 {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: square;
}
.listitem2 {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: circle;
}
.listitem3, .listitem4, .listitem5, .listitem6, .listitem7, .listitem8, .listitem9 {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: square;
}
.note {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.notebanner {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.notecontent {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.notecontentfixed {
background-color: #fafbfe;
color: #112277;
font-family: 'Courier New', Courier;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.output > colgroup {
border-left: 1px solid #c1c1c1;
border-right: 1px solid #c1c1c1;
}
.output > tbody, .output > thead, .output > tfoot {
border-top: 1px solid #c1c1c1;
border-bottom: 1px solid #c1c1c1;
}
.output { border: hidden; }
.output {
background-color: #fafbfe;
border: 1px solid #c1c1c1;
border-collapse: separate;
border-spacing: 1px;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.pageno {
background-color: #fafbfe;
border-spacing: 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
text-align: right;
vertical-align: top;
}
.pages {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: decimal;
margin-left: 8px;
margin-right: 8px;
}
.pagesdate {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
width: 100%;
}
.pagesitem {
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
list-style-type: none;
margin-left: 6pt;
}
.pagesproclabel, .pagesprocname {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.pagestitle {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: italic;
font-weight: bold;
}
.paragraph {
background-color: #fafbfe;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.parskip > col, .parskip > colgroup > col, .parskip > colgroup, .parskip > tr, .parskip > * > tr, .parskip > thead, .parskip > tbody, .parskip > tfoot { border: none; }
.parskip {
border: none;
border-spacing: 0;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.prepage {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
text-align: left;
}
.proctitle {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.proctitlefixed {
background-color: #fafbfe;
color: #112277;
font-family: 'Courier New', Courier, monospace;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.rowfooter {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.rowfooteremphasis {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: italic;
font-weight: normal;
}
.rowfooteremphasisfixed {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: 'Courier New', Courier, monospace;
font-size: normal;
font-style: italic;
font-weight: normal;
}
.rowfooterempty {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.rowfooterfixed {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: 'Courier New', Courier;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.rowfooterstrong {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.rowfooterstrongfixed {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: 'Courier New', Courier, monospace;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.rowheader {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.rowheaderemphasis {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: italic;
font-weight: normal;
}
.rowheaderemphasisfixed {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: 'Courier New', Courier, monospace;
font-size: normal;
font-style: italic;
font-weight: normal;
}
.rowheaderempty {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.rowheaderfixed {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: 'Courier New', Courier;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.rowheaderstrong {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.rowheaderstrongfixed {
background-color: #edf2f9;
border-color: #b0b7bb;
border-style: solid;
border-width: 0 1px 1px 0;
color: #112277;
font-family: 'Courier New', Courier, monospace;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.systemfooter, .systemfooter10, .systemfooter2, .systemfooter3, .systemfooter4, .systemfooter5, .systemfooter6, .systemfooter7, .systemfooter8, .systemfooter9 {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.systemtitle, .systemtitle10, .systemtitle2, .systemtitle3, .systemtitle4, .systemtitle5, .systemtitle6, .systemtitle7, .systemtitle8, .systemtitle9 {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: small;
font-style: normal;
font-weight: bold;
}
.systitleandfootercontainer > col, .systitleandfootercontainer > colgroup > col, .systitleandfootercontainer > colgroup, .systitleandfootercontainer > tr, .systitleandfootercontainer > * > tr, .systitleandfootercontainer > thead, .systitleandfootercontainer > tbody, .systitleandfootercontainer > tfoot { border: none; }
.systitleandfootercontainer {
background-color: #fafbfe;
border: none;
border-spacing: 1px;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
width: 100%;
}
.table > col, .table > colgroup > col {
border-left: 1px solid #c1c1c1;
border-right: 0 solid #c1c1c1;
}
.table > tr, .table > * > tr {
border-top: 1px solid #c1c1c1;
border-bottom: 0 solid #c1c1c1;
}
.table { border: hidden; }
.table {
border-color: #c1c1c1;
border-style: solid;
border-width: 1px 0 0 1px;
border-collapse: collapse;
border-spacing: 0;
}
.titleandnotecontainer > col, .titleandnotecontainer > colgroup > col, .titleandnotecontainer > colgroup, .titleandnotecontainer > tr, .titleandnotecontainer > * > tr, .titleandnotecontainer > thead, .titleandnotecontainer > tbody, .titleandnotecontainer > tfoot { border: none; }
.titleandnotecontainer {
background-color: #fafbfe;
border: none;
border-spacing: 1px;
color: #000000;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
width: 100%;
}
.titlesandfooters {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.usertext {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.warnbanner {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: bold;
}
.warncontent {
background-color: #fafbfe;
color: #112277;
font-family: Arial, 'Albany AMT', Helvetica, Helv;
font-size: normal;
font-style: normal;
font-weight: normal;
}
.warncontentfixed {
background-color: #fafbfe;
color: #112277;
font-family: 'Courier New', Courier;
font-size: normal;
font-style: normal;
font-weight: normal;
}
/*]]>*/
</style>
</head>
<body class="l body">
<h1 class="body toc">Sortie SAS</h1>
<section data-name="Means" data-sec-type="proc">
<div id="IDX" class="systitleandfootercontainer" style="border-spacing: 1px">
<p><span class="c systemtitle">Le Système SAS</span> </p>
</div>
<div class="proc_title_group">
<p class="c proctitle">Procédure MEANS</p>
</div>
<h1 class="contentprocname toc">La MEANS Procédure</h1>
<article>
<h1 class="contentitem toc">Statistiques descriptives</h1>
<table class="table" style="border-spacing: 0">
<colgroup><col/></colgroup><colgroup><col/><col/><col/><col/><col/></colgroup>
<thead>
<tr>
<th class="b header" scope="col">Variable</th>
<th class="r b header" scope="col">N</th>
<th class="r b header" scope="col">Moyenne</th>
<th class="r b header" scope="col">Ecart-type</th>
<th class="r b header" scope="col">Minimum</th>
<th class="r b header" scope="col">Maximum</th>
</tr>
</thead>
<tbody>
<tr>
<th class="data">
<div class="stacked-values">
<div>Age</div>
<div>Height</div>
<div>Weight</div>
</div>
</th>
<td class="r data">
<div class="stacked-values">
<div>19</div>
<div>19</div>
<div>19</div>
</div>
</td>
<td class="r data">
<div class="stacked-values">
<div>13.3157895</div>
<div>62.3368421</div>
<div>100.0263158</div>
</div>
</td>
<td class="r data">
<div class="stacked-values">
<div>1.4926722</div>
<div>5.1270752</div>
<div>22.7739335</div>
</div>
</td>
<td class="r data">
<div class="stacked-values">
<div>11.0000000</div>
<div>51.3000000</div>
<div>50.5000000</div>
</div>
</td>
<td class="r data">
<div class="stacked-values">
<div>16.0000000</div>
<div>72.0000000</div>
<div>150.0000000</div>
</div>
</td>
</tr>
</tbody>
</table>
</article>
</section>
</body>
</html>
```sas
```
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Notebook Python"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.0"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
# 1 Installer Python
- Installer Python
- Ajouter les chemins de Python et Python\Scripts dans dans la variable PATH de Windows
La façon de procéder est très bien expliquée [ici](http://sametmax.com/ajouter-un-chemin-a-la-variable-denvironnement-path-sous-windows/).
---
# 2 Installer le package Jupyter
- Méthode pour installer un package
- Ouvrir une invite de commande dos
- Exécuter la commande suivante
```
pip install jupyter
```
NB : Le raccourci `^v` ne fonctionne pas dans l'invite de commande dos. La fonction "coller" est disponible avec le bouton droit de la souris.
---
# 3 Lancer Jupyper
- Ouvrir une invite de commande dos
- Exécuter la commande suivante
```
jupyter notebook
```
---
# 4 Autres langages
Jupyper permet par défaut d'exécuter du code Python. Des packages permettent d'exécuter d'autres langages.
## 4.1 Le package R [IRKernel](https://github.com/IRkernel/IRkernel) permet d'exécuter du code R dans un notebook R
- Lancer R ou RStudio
- Installer le package devtools
```
install.packages('devtools',dep=TRUE)
```
- Définir le proxy le cas échéant
```
library(httr)
set_config(use_proxy(url="proxy", port=80, username="username", password="password"))
```
- Installer IRkernel
```
devtools::install_github('IRkernel/IRkernel')
IRkernel::installspec() # to register the kernel in the current R installation
```
- On peut alors créer un notebook R
![new_notebook](documents/tuto_jupyter_windows/images/new_notebook.png)
![notebook_R](documents/tuto_jupyter_windows/images/notebook_R.png)
On remarque l'icône du logiciel R en haut à droite.
- [Exemple de notebook R](https://app-learninglab.inria.fr/gitlab/85bc36e0a8096c618fbd5993d1cca191/mooc-rr/blob/master/documents/notebooks_jupyter/notebook_R/notebook_R.ipynb)
- Lien utile : http://r.789695.n4.nabble.com/Problem-with-IRkernel-Installation-Solved-Instructions-on-how-to-Solve-it-td4727912.html
---
## 4.2 Le package Python **rpy2** permet d'exécuter du code R dans un notebook Python
- Le package `rpy2` s'installe difficilement par méthode standard.
- Télécharger le fichier binaire qui correspond au système d'exploitation [ici](https://www.lfd.uci.edu/~gohlke/pythonlibs/#rpy2)
- Ouvrir une invite de commande dos
- Se placer dans le dossier de télécharment
- Exécuter la commande suivante
```
python -m pip install rpy2‑2.9.4‑cp37‑cp37m‑win_amd64.whl # adapter le nom du fichier
```
- Lancer Jupiter et créer un notebook Python
- Exécuter la commande suivante
```
%load_ext rpy2.ipython
```
- Installer le package `tzlocal` à l'aide de la commande `pip`
- [Exemple de notebook Python/R](https://app-learninglab.inria.fr/gitlab/85bc36e0a8096c618fbd5993d1cca191/mooc-rr/blob/master/documents/notebooks_jupyter/notebook_Python_R/notebook_Python_R.ipynb)
- Lien utile : https://stackoverflow.com/questions/14882477/rpy2-install-on-windows-7
NB : Je n'ai pas eu besoin de définir les variables d'environnement R_HOME et R_USER.
---
## 4.3 Le package Python [SASKernel](https://sassoftware.github.io/sas_kernel/) permet d'exécuter du code SAS dans un notebook SAS
- Installer le package `sas_kernel` à l'aide de la commande `pip`
- Modifier le fichier C:\Program Files\Python\Python37\Lib\site-packages\saspy\sascfg_sav.py pour l'adapter à votre système
Dans les deux images ci-dessous, la fenêtre de gauche correspond au fichier initial et celle de droite au fichier modifié.
![sascfg1](documents/tuto_jupyter_windows/images/sascfg1.png)
![sascfg2](documents/tuto_jupyter_windows/images/sascfg2.png)
- On peut alors créer un notebook SAS
![new_notebook](documents/tuto_jupyter_windows/images/new_notebook.png)
![notebook_SAS](documents/tuto_jupyter_windows/images/notebook_SAS.png)
On remarque l'icône du logiciel SAS en haut à droite.
- [Exemple de notebook SAS](https://app-learninglab.inria.fr/gitlab/85bc36e0a8096c618fbd5993d1cca191/mooc-rr/blob/master/documents/notebooks_jupyter/notebook_SAS/notebook_SAS.ipynb)
- NB : L'export Jupyter vers pdf ne fonctionne pas pour les sorties HTML et donc SAS. Il est possible de faire l'export depuis pandoc.
- Exporter le document au format HTML
- Exécuter la commande suivante
```
pandoc --variable=geometry:a4paper --variable=geometry:margin=1in notebook_sas.html -o notebook_sas.pdf
```
mais ça ne marche pas pour tous les tableaux et on perd la coloration syntaxique.
- Lien utile : https://sassoftware.github.io/sas_kernel/install.html
---
## 4.4 Le package Python [SASPy](https://sassoftware.github.io/saspy/) permet d'exécuter du code SAS dans un notebook Python
- Installer le package `saspy` à l'aide de la commande `pip`
- [Exemple de notebook Python/SAS] (https://app-learninglab.inria.fr/gitlab/85bc36e0a8096c618fbd5993d1cca191/mooc-rr/blob/master/documents/notebooks_jupyter/notebook_Python_SAS/notebook_Python_SAS.ipynb)
- NB : L'export Jupyter vers pdf ne fonctionne pas pour les sorties HTML et donc SAS. Il est possible de faire l'export depuis pandoc.
- Exporter le document au format HTML
- Exécuter la commande suivante
```
pandoc --variable=geometry:a4paper --variable=geometry:margin=1in notebook_sas.html -o notebook_sas.pdf
```
mais ça ne marche pas pour tous les tableaux et on perd la coloration syntaxique.
This source diff could not be displayed because it is too large. You can view the blob instead.
---
title: "Tuto Jupyter Windows"
---
https://gitlab.inria.fr/learninglab/mooc-rr/mooc-rr-ressources/blob/master/module2/ressources/jupyter_fr.org
[FUN : Jupyter : trucs et astuces, Installation et configuration](https://www.fun-mooc.fr/courses/course-v1:inria+41016+session02/courseware/66bc811404b8481da5f794de54681c5e/f8608bfb261b4c289b35b2cd19d5baf3/3?activate_block_id=block-v1%3Ainria%2B41016%2Bsession02%2Btype%40vertical%2Bblock%404ab5bb42ca1e45c8b0f349751b96d405#installation-et-configuration-de-jupyter-sur-votre-ordinateur)
# 1 Installer Python
- Installer Python
- Ajouter les chemins de Python et Python\\Scripts dans la variable PATH de Windows
La façon de procéder est très bien expliquée [ici](http://sametmax.com/ajouter-un-chemin-a-la-variable-denvironnement-path-sous-windows/).
---
# 2 Installer le package Jupyter
- Méthode pour installer un package
- Ouvrir une invite de commande dos
- Exécuter la commande suivante
```
pip install jupyter
```
NB : Le raccourci `^v` ne fonctionne pas dans l'invite de commande dos. La fonction "coller" est disponible avec le bouton droit de la souris.
---
# 3 Lancer Jupyper
- Ouvrir une invite de commande dos
- Exécuter la commande suivante
```
jupyter notebook
```
---
# 4 Autres langages
Jupyper permet par défaut d'exécuter du code Python. Des packages permettent d'exécuter d'autres langages.
## 4.1 Le package R [IRkernel](https://irkernel.github.io/installation/) permet d'exécuter du code R dans un notebook R
- Lancer R ou RStudio
- Installer le package IRkernel
```
install.packages("IRkernel",dep=TRUE)
IRkernel::installspec() # to register the kernel in the current R installation
```
```
> packageVersion("IRkernel")
[1] ‘1.1’
```
---
Anciennement :
- Installer le package devtools
```
install.packages('devtools',dep=TRUE)
```
- Définir le proxy le cas échéant
```
library(httr)
set_config(use_proxy(url="proxy", port=80, username="username", password="password"))
```
- Installer IRkernel
```
devtools::install_github('IRkernel/IRkernel')
IRkernel::installspec() # to register the kernel in the current R installation
```
- Lien utile : http://r.789695.n4.nabble.com/Problem-with-IRkernel-Installation-Solved-Instructions-on-how-to-Solve-it-td4727912.html
## 4.2 Le package Python **rpy2** permet d'exécuter du code R dans un notebook Python
- Le package `rpy2` s'installe difficilement par méthode standard.
- Télécharger le fichier binaire qui correspond au système d'exploitation [ici](https://www.lfd.uci.edu/~gohlke/pythonlibs/#rpy2)
- Ouvrir une invite de commande dos
- Se placer dans le dossier de télécharment
- Exécuter la commande suivante
```
python -m pip install rpy2‑2.9.4‑cp37‑cp37m‑win_amd64.whl # adapter le nom du fichier
```
- Lancer Jupiter et créer un notebook Python
- Exécuter la commande suivante
```
%load_ext rpy2.ipython
```
- S'il y a un message d'erreur `ModuleNotFoundError`, le nom du module manquant est indiqué à la fin du [message](https://app-learninglab.inria.fr/gitlab/85bc36e0a8096c618fbd5993d1cca191/mooc-rr/blob/5a2d28a2b1c0491ffa6b9665e384d769e27e1296/documents/tuto_jupyter_windows/tzlocal_not_found.html)
- Installer le module manquant avec la commande pip. (Le module tzlocal peut être installé directement. Il n'est pas nécessaire de le télécharger.)
- Lien utile : https://stackoverflow.com/questions/14882477/rpy2-install-on-windows-7
NB : Je n'ai pas eu besoin de définir les variables d'environnement R_HOME et R_USER.
## 4.3 Le package Python [SASKernel](https://sassoftware.github.io/sas_kernel/) permet d'exécuter du code SAS dans un notebook SAS
- Installer le package `sas_kernel` à l'aide de la commande `pip`
- Modifier le fichier C:\\Program Files\\Python\\Python37\\Lib\\site-packages\\saspy\\sascfg_sav.py pour l'adapter à votre système
Dans les deux images ci-dessous, la fenêtre de gauche correspond au fichier initial et celle de droite au fichier modifié.
![sascfg1](D:/inserm/mooc/recherche_reproductible/mooc-rr/documents/tuto_jupyter_windows/images/sascfg1.png)
![sascfg2](D:/inserm/mooc/recherche_reproductible/mooc-rr/documents/tuto_jupyter_windows/images/sascfg2.png)
- Installer le package `pandas` à l'aide de la commande `pip`
- Ajouter le chemin C:\\Program Files\\SASHOME\\SASFoundation\\9.4\\core\\sasext dans la variable PATH de Windows
- Lien utile : https://sassoftware.github.io/sas_kernel/install.html
---
- Problèmes rencontrés
```
Pandas module not available.
```
--> Installer le package `pandas` à l'aide de la commande `pip`
```
Attempted to run program C:\\Program Files\\SASHome\\SASPrivateJavaRuntimeEnvironment\\9.4\\jrin\\java
```
--> Vérifier que tous les antislashs sont doublés
```
Be sure the path to sspiauth.dll is in your System PATH
```
--> Ajouter le chemin C:\\Program Files\\SASHOME\\SASFoundation\\9.4\\core\\sasext dans la variable PATH de Windows
---
## 4.4 Le package Python [SASPy](https://sassoftware.github.io/saspy/) permet d'exécuter du code SAS dans un notebook Python
- Installer le package `saspy` à l'aide de la commande `pip`
This source diff could not be displayed because it is too large. You can view the blob instead.
# 1 Installer Magit
Plusieurs méthodes sont proposées [ici] (https://magit.vc/manual/magit/Installing-from-an-Elpa-Archive.html).
Celle-ci a été testée sur Windows :
- Ajouter le code suivant dans le fichier `.emacs.d/init.el`
```
(require 'package)
(add-to-list 'package-archives
'("melpa" . "http://melpa.org/packages/") t)
```
- Lancer Emacs et exécuter les commandes suivantes
```
M-x package-refresh-contents RET
M-x package-install RET magit RET
```
NB : `M-` correspond à la touche `<Alt>`, `RET` à la touche `<Entrée>`
# 2 Lancer Magit
- Ouvrir un fichier et exécuter le racourci `C-x g`
- Magit demande le chemin du répertoire Git
- Indiquer le chemin du répertoire mooc-rr
![git1](documents/tuto_magit/images/git1.png)
\ No newline at end of file
# Dans Git
- Enregistrer l'email et le nom de l'utilisateur
```
git config --global --user.email you@example.com
git config --global --user.name Your Name
```
NB : Ne pas mettre de guillemets.
Ces deux paramètres sont obligatoire pour pouvoir commiter sinon on obtient le message suivant
![commit3](documents/tuto_rstudio_gitlab/images/commit3.png)
- Si vous êtes derrière un proxy, il faut le définir dans Git
```
git config --global http.proxy http://proxy.server.com:port
```
On peut aussi définir le proxyUsername pour n'avoir que le mot de passe à saisir
```
git config --global http.proxy http://proxyUsername@proxy.server.com:port
```
- Option pour que le login et mot de passe soient enregistrés pendant 1 heure
```
git config --global credential.helper "cache --timeout=3600"
```
# Dans RStudio
- File / New Project / Version Control
![new_project](documents/tuto_rstudio_gitlab/images/new_project.png)
![git](documents/tuto_rstudio_gitlab/images/git.png)
- Récupérer l'adresse du dépôt
![adresse_depot](documents/tuto_rstudio_gitlab/images/adresse_depot.png)
- Indiquer l'adresse du dépôt dans le champ "Repository URL"
- Il est possible de faire précéder l'adresse du dépôt par `xxx@`, xxx étant l'identifiant Gitlab, pour ne pas avoir à le renseigner par la suite
![clone](documents/tuto_rstudio_gitlab/images/clone.png)
- Si vous êtes derrière un proxy, il faut le définir dans Git
- Git demande le mot de passe du proxy
![password_proxy](documents/tuto_rstudio_gitlab/images/password_proxy.png)
- Git se connecte à Gitlab et récupère l'ensemble des données
- RStudio redémarre pour se placer dans un mode lié à Git
![rstudio](documents/tuto_rstudio_gitlab/images/rstudio.png)
- Module2 / exo1 / toy_document.Rmd
- Modifier le fichier
- Sauvegarder
- Aller dans Git pour effectuer le commit
![commit](documents/tuto_rstudio_gitlab/images/commit.png)
![commit2](documents/tuto_rstudio_gitlab/images/commit2.png)
- Sélectionner les lignes à commiter puis cliquer sur "commit"
![commit5](documents/tuto_rstudio_gitlab/images/commit5.png)
Les modifications sont pour l'instant uniquement sur la machine. Elles n'ont pas été propagées sur Gitlab.
- Cliquer sur "push" pour les propager sur Gitlab
![push](documents/tuto_rstudio_gitlab/images/push.png)
![push2](documents/tuto_rstudio_gitlab/images/push2.png)
![push3](documents/tuto_rstudio_gitlab/images/push3.png)
- NB : Il n'est pas possible de synchroniser vers Gitlab si des modifications ont été faites sur Gitlab et n'ont pas été répercupées en local
![push4](documents/tuto_rstudio_gitlab/images/push4.png)
- Cliquer sur "pull" pour synchroniser Gitlab vers Git
\ No newline at end of file
Version: 1.0
RestoreWorkspace: Default
SaveWorkspace: Default
AlwaysSaveHistory: Default
EnableCodeIndexing: Yes
UseSpacesForTab: Yes
NumSpacesForTab: 2
Encoding: UTF-8
RnwWeave: Sweave
LaTeX: pdfLaTeX
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment