diff --git a/documents/notebooks/.gitkeep b/documents/notebooks/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/documents/notebooks/cars.csv b/documents/notebooks/cars.csv new file mode 100644 index 0000000000000000000000000000000000000000..34b3d46d117b536242806051d43130e558437b7c --- /dev/null +++ b/documents/notebooks/cars.csv @@ -0,0 +1,51 @@ +"","speed","dist" +"1",4,2 +"2",4,10 +"3",7,4 +"4",7,22 +"5",8,16 +"6",9,10 +"7",10,18 +"8",10,26 +"9",10,34 +"10",11,17 +"11",11,28 +"12",12,14 +"13",12,20 +"14",12,24 +"15",12,28 +"16",13,26 +"17",13,34 +"18",13,34 +"19",13,46 +"20",14,26 +"21",14,36 +"22",14,60 +"23",14,80 +"24",15,20 +"25",15,26 +"26",15,54 +"27",16,32 +"28",16,40 +"29",17,32 +"30",17,40 +"31",17,50 +"32",18,42 +"33",18,56 +"34",18,76 +"35",18,84 +"36",19,36 +"37",19,46 +"38",19,68 +"39",20,32 +"40",20,48 +"41",20,52 +"42",20,56 +"43",20,64 +"44",22,66 +"45",23,54 +"46",24,70 +"47",24,92 +"48",24,93 +"49",24,120 +"50",25,85 diff --git a/documents/notebooks/images/.gitkeep b/documents/notebooks/images/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/documents/notebooks/images/fig.png b/documents/notebooks/images/fig.png new file mode 100644 index 0000000000000000000000000000000000000000..fac116db23216025eed0b51cc97b94a5c757e89c Binary files /dev/null and b/documents/notebooks/images/fig.png differ diff --git a/documents/notebooks/notebook_Jupyter_Python_R.ipynb b/documents/notebooks/notebook_Jupyter_Python_R.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..3e41364c9ac24a1950da3806fc6dc2097eff7413 --- /dev/null +++ b/documents/notebooks/notebook_Jupyter_Python_R.ipynb @@ -0,0 +1,399 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Notebook Python R\n", + "\n", + "## Import des données dans Python" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0speeddist
0142
12410
2374
34722
45816
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 speed dist\n", + "0 1 4 2\n", + "1 2 4 10\n", + "2 3 7 4\n", + "3 4 7 22\n", + "4 5 8 16" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "# data_url = \"https://forge.scilab.org/index.php/p/rdataset/source/file/master/csv/datasets/cars.csv\"\n", + "data_url = \"cars.csv\"\n", + "df_python = pd.read_csv(data_url)\n", + "df_python.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Supression de la première colonne" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
speeddist
042
1410
274
3722
4816
\n", + "
" + ], + "text/plain": [ + " speed dist\n", + "0 4 2\n", + "1 4 10\n", + "2 7 4\n", + "3 7 22\n", + "4 8 16" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_python.drop(df_python.columns[[0]], axis=1, inplace=True)\n", + "df_python.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Summary avec Python" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
speeddist
count50.00000050.000000
mean15.40000042.980000
std5.28764425.769377
min4.0000002.000000
25%12.00000026.000000
50%15.00000036.000000
75%19.00000056.000000
max25.000000120.000000
\n", + "
" + ], + "text/plain": [ + " speed dist\n", + "count 50.000000 50.000000\n", + "mean 15.400000 42.980000\n", + "std 5.287644 25.769377\n", + "min 4.000000 2.000000\n", + "25% 12.000000 26.000000\n", + "50% 15.000000 36.000000\n", + "75% 19.000000 56.000000\n", + "max 25.000000 120.000000" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_python.describe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Summary avec R" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "from rpy2.robjects import pandas2ri\n", + "pandas2ri.activate()\n", + "from rpy2.robjects.packages import importr" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " speed dist \n", + "\r\n", + " Min. : 4.0 Min. : 2.00 \n", + "\r\n", + " 1st Qu.:12.0 1st Qu.: 26.00 \n", + "\r\n", + " Median :15.0 Median : 36.00 \n", + "\r\n", + " Mean :15.4 Mean : 42.98 \n", + "\r\n", + " 3rd Qu.:19.0 3rd Qu.: 56.00 \n", + "\r\n", + " Max. :25.0 Max. :120.00 \n", + "\n" + ] + } + ], + "source": [ + "base = importr('base')\n", + "print(base.summary(df_python))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\r\n", + " Numeric \n", + "\r\n", + " mean median var sd valid.n\n", + "\r\n", + "speed 15.40 15 27.96 5.29 50\n", + "\r\n", + "dist 42.98 36 664.06 25.77 50\n", + "\n" + ] + } + ], + "source": [ + "prettyR = importr('prettyR')\n", + "print(prettyR.describe(df_python))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Liens utiles\n", + "\n", + "- http://rpy.sourceforge.net/rpy2/doc-2.4/html/introduction.html\n", + "- https://rpy2.readthedocs.io/en/version_2.8.x/" + ] + } + ], + "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 +} diff --git a/documents/notebooks/notebook_Jupyter_Python_SAS.ipynb b/documents/notebooks/notebook_Jupyter_Python_SAS.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..2d7cb6c2c980fc395e6a51cbe759eb39407804bb --- /dev/null +++ b/documents/notebooks/notebook_Jupyter_Python_SAS.ipynb @@ -0,0 +1,1630 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Notebook Python SAS\n", + "\n", + "## Import des données dans Python" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0speeddist
0142
12410
2374
34722
45816
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 speed dist\n", + "0 1 4 2\n", + "1 2 4 10\n", + "2 3 7 4\n", + "3 4 7 22\n", + "4 5 8 16" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "# data_url = \"https://forge.scilab.org/index.php/p/rdataset/source/file/master/csv/datasets/cars.csv\"\n", + "data_url = \"cars.csv\"\n", + "df_python = pd.read_csv(data_url)\n", + "df_python.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Supression de la première colonne" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
speeddist
042
1410
274
3722
4816
\n", + "
" + ], + "text/plain": [ + " speed dist\n", + "0 4 2\n", + "1 4 10\n", + "2 7 4\n", + "3 7 22\n", + "4 8 16" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_python.drop(df_python.columns[[0]], axis=1, inplace=True)\n", + "df_python.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Summary avec Python" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
countmeanstdmin25%50%75%max
speed50.015.405.2876444.012.015.019.025.0
dist50.042.9825.7693772.026.036.056.0120.0
\n", + "
" + ], + "text/plain": [ + " count mean std min 25% 50% 75% max\n", + "speed 50.0 15.40 5.287644 4.0 12.0 15.0 19.0 25.0\n", + "dist 50.0 42.98 25.769377 2.0 26.0 36.0 56.0 120.0" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_python.describe().transpose()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Summary avec SAS" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "SAS Connection established. Subprocess id is 4708\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "Libref = WORK\n", + "Table = _df\n", + "Dsopts = {}\n", + "Results = Pandas" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import saspy\n", + "session_sas = saspy.SASsession(cfgname='winlocal')\n", + "df_sas = session_sas.df2sd(df_python)\n", + "df_sas" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- La fonction `df2sd()` produit un objet Python, ici `df_sas`, qui contient une table SAS nommée `_df`.\n", + "- `SASPy` fournit des objets Python de haut niveau pour les principales procédures SAS.\n", + "- Toutes les fonctions SAS sont exécutables à l'aide de la commande magique `%%SAS`.\n", + "- On applique les fonctions Python sur l'objet `df_sas` et les fonctions SAS sur l'objet `_df`." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
VariableNNMissMedianMeanStdDevMinP25P50P75Max
0speed5001515.405.287644412151925
1dist5003642.9825.7693772263656120
\n", + "
" + ], + "text/plain": [ + " Variable N NMiss Median Mean StdDev Min P25 P50 P75 Max\n", + "0 speed 50 0 15 15.40 5.287644 4 12 15 19 25\n", + "1 dist 50 0 36 42.98 25.769377 2 26 36 56 120" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_sas.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "Sortie SAS\r\n", + "\r\n", + "\r\n", + "\r\n", + "

Sortie SAS

\r\n", + "
\r\n", + "

La MEANS Procédure

\r\n", + "
\r\n", + "

Statistiques descriptives

\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "
VariableNMoyenneEcart-typeMinimumMaximum
\r\n", + "
\r\n", + "
speed
\r\n", + "
dist
\r\n", + "
\r\n", + "
\r\n", + "
\r\n", + "
50
\r\n", + "
50
\r\n", + "
\r\n", + "
\r\n", + "
\r\n", + "
15.40
\r\n", + "
42.98
\r\n", + "
\r\n", + "
\r\n", + "
\r\n", + "
5.29
\r\n", + "
25.77
\r\n", + "
\r\n", + "
\r\n", + "
\r\n", + "
4.00
\r\n", + "
2.00
\r\n", + "
\r\n", + "
\r\n", + "
\r\n", + "
25.00
\r\n", + "
120.00
\r\n", + "
\r\n", + "
\r\n", + "
\r\n", + "
\r\n", + "\r\n", + "\r\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "%%SAS session_sas\n", + "ods title;\n", + "ods noproctitle;\n", + "proc means data=_df maxdec=2;\n", + "run;" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Liens utiles\n", + "\n", + "**Code SAS dans notebook Jupyter :**\n", + "\n", + "- https://blogs.sas.com/content/sasdummy/2016/04/24/how-to-run-sas-programs-in-jupyter-notebook/\n", + "- https://blogs.sas.com/content/sasdummy/2017/04/08/python-to-sas-saspy/\n", + "- https://sassoftware.github.io/saspy/\n", + "\n", + "**Export vers pdf :**\n", + "\n", + "- https://github.com/sassoftware/sas_kernel/issues/13\n", + "- https://stackoverflow.com/questions/43965823/convert-notebook-generated-html-snippet-to-latex-and-pdf\n", + "- https://github.com/jupyter/nbconvert/issues/474\n" + ] + } + ], + "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 +} \ No newline at end of file diff --git a/documents/notebooks/notebook_Jupyter_R.ipynb b/documents/notebooks/notebook_Jupyter_R.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..59e33b6c4d39cf95d43c777c5c20286f5449ccec --- /dev/null +++ b/documents/notebooks/notebook_Jupyter_R.ipynb @@ -0,0 +1,75 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Notebook R" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + " speed dist \n", + " Min. : 4.0 Min. : 2.00 \n", + " 1st Qu.:12.0 1st Qu.: 26.00 \n", + " Median :15.0 Median : 36.00 \n", + " Mean :15.4 Mean : 42.98 \n", + " 3rd Qu.:19.0 3rd Qu.: 56.00 \n", + " Max. :25.0 Max. :120.00 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "summary(cars)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nGMU0FVKti2PVToxiWgqp4u2aaidGIW2FBJUSEgQICQKEBAFCggAhQYCQIEBIECAkCBASBAgJ\nAoQEAUKCACFBgJAgQEgQICQIEBIECAkChAQBQvoc0/cv4XZCeh/Rd9TiHkI6H1FI3EhI3wZU\nErcR0rcBhcRthPRtQCFxGyGdj6gjbiSk9xGt2nEPIX2OKSNuJyQIaCskzxpUqqWQXMdQraZC\nKjU8/FZDIdnroV5CggAhQUBDIblGol5NhWTVjlq1FJJ9JKrVVkhQqaIhvTyuuqPV+mWoIWAU\nBUPaL7ovy0GGgJEUDGnd9c/b06Pdpu/WQwwBIykYUt9tPx9vu36IIWAkBUP6tuL29/Jbd+7G\nIWAknpEgoOw10mZ3euQaiakpufy9PHvtttgPMgSMo+w+0vq0j9SvHu0jMS3ubIAAIUGAkCBA\nSBAgJAgQEgQICQKEBAGVhgSNueGrPB9OSq1Tq3Ve1U5sFvOq9YM81Du1WudV7cRmMa9aP8hD\nvVOrdV7VTmwW86r1gzzUO7Va51XtxGYxr1o/yEO9U6t1XtVObBbzqvWDPNQ7tVrnVe3EZjGv\nWj/IQ71Tq3Ve1U5sFvOq9YM81Du1WudV7cRmMa9aP8hDvVOrdV7VTmwW86r1gzzUO7Va51Xt\nxGYxr1o/yEO9U6t1XtVObBbzqvWDPNQ7tVrnVe3EZjGvWj9IaIqQIEBIECAkCBASBAgJAoQE\nAUKCACFBgJAgQEgQICQIEBIECAkChAQBQoKASkO6+XuZD+rpY0LrvuvX+1Hn8s3HxOo6bU+L\nz7NU1Qn7mlfwfNVy0r/b1vUV8W77MaHlaXKLcWdz5mNidZ229Wku/fErtqoT9jWv5Pmq5KT/\nYdutxp7C37b9+yl/6frt8XcvI0/ow+fEqjpt2+5hf3yufKjshJ3NK3m+6gzpqXscewp/eeqW\n71+v627z+utzLXP8mlhVp231Nqfj1Ko6YWfzSp6vWkN6GnsKf+nWh/ev11W3O1T0z//XxKo8\nbV11J+zkLaTc+aozpFW3eXi9IBx7Gt9sDx9fr9//M7qviVV42vbdsroTdnSaV/J8VfSxnVm9\nXQQux57HH+oM6XAWUnWn7en4qq6+E/Y2r+T5quhjO9N1z6//aKxre6VSe0j1nbZdf3w5V98J\n+5hX7nzV87H9bV/LgumH2kN6U9Fp2/enf+2rO2Hv83r/TeR8VfOx/Us9Z/7N+3z62r4u/phK\nPRNbvn2JVnfClt/Sicyrmo/tX+o582++rdrtKlqEqjOk3WK5Oz2o7IR9zuvdhEPqu+N+eDVn\n/sP7GX88bYtsunqWxz6fKms6bZvPq/i6TtjXvJLnq86Q1sdzvn/bx6tIpXc2fE6sqtO2+1oN\nq+qEnc0reb7qDGnfn9Yl6/gX7MvHa4BFbavM7xOr6rQ9dF93stV0ws7mlTxfdYb0+s9E3y3q\nWcV99xHS/nQz87hz+eZ8YrWctu4spJpO2J/zCp2vSkOCtggJAoQEAUKCACFBgJAgQEgQICQI\nEBIECAkChAQBQoIAIUGAkCBASBAgJAgQEgQICQKEBAFCggAhQYCQIEBIECAkCBASBAgJAoQE\nAUKCACFBgJAgQEgQICQIEBIECGl6avmp5rPinE+PkEbgnE+PkEbgnE+PkEbgnFdvs+y65eZw\nCmT9+cPBnxZd//TXw3XfrYU0Bue8dk9vP8z+6RjS4/HR8vh/V92/Hi6Pj1ZCGoFzXru+2x4O\nz93iGFK/PWz77vn1Wapb7g/7Zbf59vD5/Q/4pJbnnNeuOyZy9mjTrY7PQvvXh/u/Hr6c/oBP\nannOee3Wry/Wttvjo/dAjv/pPvzx8HD25yjJOa/e4+trta7fCalqznkDNuvF2zXS6XdnyXz8\n9vtDIY3AOW/DWz1vl0APx6uhjwunvx++CGkEznntFsdVum+rdh/rc4en4wrD2cONVbvROOe1\ne367Ano5hvS2T3T8v6dHpyun84enLaUHIY3AOa/e6c6G44u610BW3eLrdobuYffnw0d3NozE\nOW+HQCrmc9MOIVXM56YdQqqYz007hFQxnxsIEBIECAkChAQBQoIAIUGAkCBASBAgJAgQEgQI\nCQKEBAFCggAhQYCQIEBIECAkCBASBAgJAoQEAUKCACFBgJAgQEgQICQIEBIECAkC/gNzeDUu\n0A6vdAAAAABJRU5ErkJggg==", + "text/plain": [ + "plot without title" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(cars)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "R", + "language": "R", + "name": "ir" + }, + "language_info": { + "codemirror_mode": "r", + "file_extension": ".r", + "mimetype": "text/x-r-source", + "name": "R", + "pygments_lexer": "r", + "version": "3.5.1" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/documents/notebooks/notebook_Jupyter_SAS.ipynb b/documents/notebooks/notebook_Jupyter_SAS.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..e40b45c0488fe53afbc3af3444ba2e9401280ef6 --- /dev/null +++ b/documents/notebooks/notebook_Jupyter_SAS.ipynb @@ -0,0 +1,2453 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Notebook SAS" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Les notebooks SAS reposent sur l'ods. On peut donc utiliser les fonctionnalités de l'ods." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "SAS Connection established. Subprocess id is 4596\n", + "\n" + ] + }, + { + "data": { + "text/html": [ + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "Sortie SAS\r\n", + "\r\n", + "\r\n", + "\r\n", + "

Sortie SAS

\r\n", + "
\r\n", + "

La MEANS Procédure

\r\n", + "
\r\n", + "

Statistiques descriptives

\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "
VariableNMoyenneEcart-typeMinimumMaximum
\r\n", + "
\r\n", + "
Age
\r\n", + "
Height
\r\n", + "
Weight
\r\n", + "
\r\n", + "
\r\n", + "
\r\n", + "
19
\r\n", + "
19
\r\n", + "
19
\r\n", + "
\r\n", + "
\r\n", + "
\r\n", + "
13.3157895
\r\n", + "
62.3368421
\r\n", + "
100.0263158
\r\n", + "
\r\n", + "
\r\n", + "
\r\n", + "
1.4926722
\r\n", + "
5.1270752
\r\n", + "
22.7739335
\r\n", + "
\r\n", + "
\r\n", + "
\r\n", + "
11.0000000
\r\n", + "
51.3000000
\r\n", + "
50.5000000
\r\n", + "
\r\n", + "
\r\n", + "
\r\n", + "
16.0000000
\r\n", + "
72.0000000
\r\n", + "
150.0000000
\r\n", + "
\r\n", + "
\r\n", + "
\r\n", + "
\r\n", + "\r\n", + "\r\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ods title;\n", + "ods noproctitle;\n", + "proc means data=sashelp.class;\n", + "run;" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "\r\n", + "Sortie SAS\r\n", + "\r\n", + "\r\n", + "\r\n", + "

Sortie SAS

\r\n", + "
\r\n", + "

La SGPLOT Procédure

\r\n", + "
\r\n", + "

The SGPlot Procedure

\r\n", + "
\r\n", + "\"The\r\n", + "
\r\n", + "
\r\n", + "
\r\n", + "\r\n", + "\r\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "title 'Student Weight by Student Height';\n", + "proc sgplot data=sashelp.class noautolegend;\n", + " pbspline y=weight x=height;\n", + "run;" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "En cas d'erreur, la log s'affiche dans le notebook :" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "

\n", + "\n", + "
\f",
+       "8                                                          Le Système SAS                           23:47 Monday, September 17, 2018

61 ods listing close;ods html5 (id=saspy_internal) file=_tomods1 options(bitmap_mode='inline') device=svg style=HTMLBlue;
61 ! ods graphics on / outputfmt=png;
NOTE: Writing HTML5(SASPY_INTERNAL) Body file: _TOMODS1
62
63 proc means data sashelp.class;
_____________
73
ERROR 73-322: Expecting an =.
64 run;

NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE MEANS used (Total process time):
real time 0.00 secondes
cpu time 0.00 secondes

65
66 ods html5 (id=saspy_internal) close;ods listing;
67
\n", + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "proc means data sashelp.class;\n", + "run;" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "SAS", + "language": "sas", + "name": "sas" + }, + "language_info": { + "codemirror_mode": "sas", + "file_extension": ".sas", + "mimetype": "text/x-sas", + "name": "sas" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/documents/notebooks/notebook_Jupyter_html.ipynb b/documents/notebooks/notebook_Jupyter_html.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..a615ff82040c06ad8fdd8b516db98c1a17412174 --- /dev/null +++ b/documents/notebooks/notebook_Jupyter_html.ipynb @@ -0,0 +1,58 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "

Hello

" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from IPython.display import display, HTML\n", + "display(HTML('

Hello

'))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Liens utiles :\n", + "\n", + "- https://stackoverflow.com/questions/43965823/convert-notebook-generated-html-snippet-to-latex-and-pdf\n", + "- https://github.com/jupyter/nbconvert/issues/474" + ] + } + ], + "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 +} diff --git a/documents/notebooks/notebook_Jupyter_html.pdf b/documents/notebooks/notebook_Jupyter_html.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0014c3b9ea8b6f1c746d971c155455b881359540 Binary files /dev/null and b/documents/notebooks/notebook_Jupyter_html.pdf differ diff --git a/documents/notebooks/notebook_RStudio_Rmarkdown.pdf b/documents/notebooks/notebook_RStudio_Rmarkdown.pdf new file mode 100644 index 0000000000000000000000000000000000000000..63bcfc9c3bdc77ec2298bbf896ecd703c1d4abf1 Binary files /dev/null and b/documents/notebooks/notebook_RStudio_Rmarkdown.pdf differ diff --git a/documents/notebooks/notebook_RStudio_SASmarkdown.md b/documents/notebooks/notebook_RStudio_SASmarkdown.md new file mode 100644 index 0000000000000000000000000000000000000000..8794cf847dc583dc9ec724857ec6835bfebcc679 --- /dev/null +++ b/documents/notebooks/notebook_RStudio_SASmarkdown.md @@ -0,0 +1,91 @@ +SASmarkdown notebook +==================== + +Reference manual +================ + +[SASmarkdown.pdf](https://cran.r-project.org/web/packages/SASmarkdown/SASmarkdown.pdf) + +Configuration +============= + + ```{r setup, include=FALSE} + knitr::opts_chunk$set(echo = TRUE) + require(SASmarkdown) + saspath <- "C:/Program Files/SASHome/SASFoundation/9.4/sas.exe" + sasopts <- "-nosplash -ls 75" + knitr::opts_chunk$set(engine='sas', engine.path=saspath, + engine.opts=sasopts, comment="") + ``` + +Listing output +============== + + ```{r, engine='sas', collectcode=TRUE, error=FALSE} + proc means data=sashelp.class; + run; + + ods listing gpath='D:\figures'; + ods graphics / imagename="fig" imagefmt=png; + title 'Student Weight by Student Height'; + proc sgplot data=sashelp.class noautolegend; + pbspline y=weight x=height; + run; + ``` + + Procédure MEANS + + Variable N Moyenne Ecart-type Minimum Maximum + ------------------------------------------------------------------------- + Age 19 13.3157895 1.4926722 11.0000000 16.0000000 + Height 19 62.3368421 5.1270752 51.3000000 72.0000000 + Weight 19 100.0263158 22.7739335 50.5000000 150.0000000 + ------------------------------------------------------------------------- + +`![figure](D:\figures\fig.png)` + +![figure](images/fig.png) + +HTML output (vue du fichier pdf) +=========== + + ```{r, engine='sashtml', collectcode=TRUE, error=FALSE} + proc means data=sashelp.class; + run; + ``` + +Tableau mal converti en pdf + + Variable + N + Moyenne + Ecart-type + Minimum + Maximum + Age + Height + Weight + 19 + 19 + 19 + 13.3157895 + 62.3368421 + 100.0263158 + 1.4926722 + 5.1270752 + 22.7739335 + 11.0000000 + 51.3000000 + 50.5000000 + 16.0000000 + 72.0000000 + 150.0000000 + + ```{r, engine='sashtml', echo=FALSE, collectcode=TRUE, error=FALSE} + title 'Student Weight by Student Height'; + proc sgplot data=sashelp.class noautolegend; + pbspline y=weight x=height; + run; + ``` + +Pas de sortie graphique dans le fichier pdf. \ No newline at end of file diff --git a/documents/notebooks/notebook_RStudio_SASmarkdown.pdf b/documents/notebooks/notebook_RStudio_SASmarkdown.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f8203f5a13630064acf8e9f48199dc881642332f Binary files /dev/null and b/documents/notebooks/notebook_RStudio_SASmarkdown.pdf differ