README.md 12 KB
Newer Older
1
2
3
4
5
6
[//]: # "#to make links in gitlab: example with racon https://github.com/isovic/racon"
[//]: # "tricks in markdown: https://openclassrooms.com/fr/courses/1304236-redigez-en-markdown"

| usage | R dependencies |
| --- | --- |
| [![R Version](https://img.shields.io/badge/code-R-blue?style=plastic)](https://cran.r-project.org/mirrors.html) | [![Dependencies: R Version](https://img.shields.io/badge/R-v4.0.2-blue?style=plastic)](https://cran.r-project.org/mirrors.html) |
7
| [![License: GPL-3.0](https://img.shields.io/badge/licence-GPL%20(%3E%3D3)-green?style=plastic)](https://www.gnu.org/licenses) | [![Dependencies: R Package](https://img.shields.io/badge/package-Cairo%20v1.5_12.2-blue?style=plastic)](https://cran.r-project.org/web/packages/Cairo/index.html) |
8
9
|  | [![Dependencies: R Package](https://img.shields.io/badge/package-ggplot2%20v3.3.2-blue?style=plastic)](https://github.com/tidyverse/ggplot2) |
|  | [![Dependencies: R Package](https://img.shields.io/badge/package-lubridate%20v1.7.9-blue?style=plastic)](https://github.com/tidyverse/lubridate) |
10
|  | [![Dependencies: R Package](https://img.shields.io/badge/package-pdftools%20v2.3.1-blue?style=plastic)](https://cran.r-project.org/web/packages/pdftools/index.html) |
11
12
13
|  | [![Dependencies: R Package](https://img.shields.io/badge/package-reshape2%20v1.4.4-blue?style=plastic)](https://cran.r-project.org/web/packages/reshape2/index.html) |
|  | [![Dependencies: R Package](https://img.shields.io/badge/package-reticulate%20v1.16-blue?style=plastic)](https://cran.r-project.org/web/packages/reticulate/index.html)|
|  | [![Dependencies: R Package](https://img.shields.io/badge/package-scales%20v1.1.1-blue?style=plastic)](https://cran.r-project.org/web/packages/scales/index.html) |
14
15
16
17
18
19
20
21
22
23
24
25
26
27


## TABLE OF CONTENTS

   - [AIM](#aim)
   - [REPOSITORY CONTENT](#repository-content)
   - [DESCRIPTIONS OF THE FUNCTIONS](#description-of-the-functions)
   - [HOW TO HOW TO LOAD AND MANIPULATE](#how-to-load-and-manipulate)
   - [VERSIONS](#versions)
   - [LICENCE](#licence)
   - [CITATION](#citation)
   - [CREDITS](#credits)
   - [ACKNOWLEDGEMENTS](#Acknowledgements)
   - [WHAT'S NEW IN](#what's-new-in)
Gael  MILLOT's avatar
Gael MILLOT committed
28

Gael  MILLOT's avatar
Gael MILLOT committed
29

30
## AIM
Gael  MILLOT's avatar
Gael MILLOT committed
31

Gael  MILLOT's avatar
Gael MILLOT committed
32

33
Set of functions that facilitate basic procedures in 1) object analysis, 2) object modification, 3) graphic handling and 4) log file management.
Gael  MILLOT's avatar
Gael MILLOT committed
34

35
The present repository of Cute Little R functions is for beta testing. Ultimately, functions will be provided as packages
Gael  MILLOT's avatar
Gael MILLOT committed
36
37


38
## REPOSITORY CONTENT
Gael  MILLOT's avatar
Gael MILLOT committed
39

40
41
42
43
44
45
46
47
| **cute_little_R_functions.R** | file that has to be sourced in R or RStudio |
| **cute_little_R_functions.docx** | same as cute_little_R_functions.R but for better reading (interactive outline at the beginning of the file) |
| **fun_gg_boxplot.docx** | for better reading of the argument description |
| **fun_gg_scatter.docx** | for better reading of the argument description |
| **examples.R** | examples of all the functions, except fun_gg_boxplot() and fun_gg_scatter(), that can be sourced or copied-pasted |
| **examples_gg_boxplot.R** | examples of fun_gg_boxplot() that can be sourced or copied-pasted |
| **examples_gg_scatter.R** | examples of fun_gg_scatter() that can be sourced or copied-pasted |
| **other** | folder containing avorted developments |
Gael  MILLOT's avatar
Gael MILLOT committed
48
49


50
## DESCRIPTIONS OF THE FUNCTIONS
Gael  MILLOT's avatar
Gael MILLOT committed
51

52
53
| Object analysis | |
| --- | --- |
Gael's avatar
Gael committed
54
55
56
| **fun_check()** | check class, type, length, etc., of objects |
| **fun_secu()** | verif that local variables are not present in other envs |
| **fun_info()** | recover object information |
57
58
| **fun_head()** | head of the corners of big 2D objects |
| **fun_tail()** | tail of the corners of big 2D objects |
Gael's avatar
Gael committed
59
| **fun_comp_1d()** | comparison of two 1D datasets (vectors, factors, 1D tables) |
60
| **fun_comp_2d()** | comparison of two 2D datasets (matrices, data.drames, tables) |
Gael's avatar
Gael committed
61
62
| **fun_comp_list()** | comparison of two lists |
| **fun_test()** | test combinations of argument values of a function and return errors (and graphs) |
Gael  MILLOT's avatar
Gael MILLOT committed
63

64
65
| Object modification | |
| --- | --- |
Gael's avatar
Gael committed
66
| **fun_name_change()** | check a vector of character strings and modify any string if present in another vector |
67
68
| **fun_df_remod()** | remodel a data frame to have column name as a qualitative values and vice-versa |
| **fun_round()** | round numbers if decimals present |
Gael's avatar
Gael committed
69
70
71
72
73
| **fun_mat_rotate()** | 90° clockwise matrix rotation |
| **fun_mat_num2color()** | convert a numeric matrix into hexadecimal color matrix |
| **fun_mat_op()** | assemble several matrices with operation |
| **fun_mat_inv()** | return the inverse of a square matrix |
| **fun_mat_fill()** | fill the empty half part of a symmetric square matrix |
74
| **fun_permut()** | progressively break a vector order |
Gael's avatar
Gael committed
75
| **fun_slide()** | return a computation made on a vector using a sliding window |
Gael  MILLOT's avatar
Gael MILLOT committed
76

77
78
| Graphics management | |
| --- | --- |
79
80
81
82
| **fun_width()** | graphic device width depending on the number of classes to plot |
| **fun_open()** | open a GUI or pdf graphic device |
| **fun_prior_plot()** | set graphic parameters before plotting (erase axes for instance) |
| **fun_scale()** | select nice labeling numbers when setting the number of ticks on an axis |
Gael's avatar
Gael committed
83
| **fun_inter_ticks()** | define coordinates of secondary ticks |
84
85
| **fun_post_plot()** | set graphic parameters after plotting (axes redesign for instance) |
| **fun_close()** | close specific graphic devices |
Gael  MILLOT's avatar
Gael MILLOT committed
86

87
88
| Standard graphics | |
| --- | --- |
89
| **fun_empty_graph()** | generate an empty graphic device with text in the middle |
Gael  MILLOT's avatar
Gael MILLOT committed
90

91
92
| gg graphics | |
| --- | --- |
93
| **fun_gg_palette()** | select colors on the ggplot2 default color palette |
94
| **fun_gg_just()** | ggplot2 justification of annotated text or axis labeling, depending on angle |
Gael's avatar
Gael committed
95
96
| **fun_gg_get_legend()** | get the legend of ggplot objects |
| **fun_gg_point_rast()** | ggplot2 raster scatterplot layer |
97
| **fun_gg_boxplot()** | ggplot2 boxplot + dots + means + median/mean values |
Gael's avatar
Gael committed
98
| **fun_gg_scatter()** | ggplot2 scatterplot + lines (up to 6 overlays totally) |
99
| **fun_gg_empty_graph()** | generate an empty graphic device with text in the middle |
Gael  MILLOT's avatar
Gael MILLOT committed
100

101
102
| Graphic extraction | |
| --- | --- |
Gael's avatar
Gael committed
103
104
| **fun_trim()** | display values from a quantitative variable and trim according to defined cut-offs |
| **fun_segmentation()** | segment a dot cloud on a scatterplot and define the dots from another cloud outside the segmentation |
Gael  MILLOT's avatar
Gael MILLOT committed
105

106
107
| Import | |
| --- | --- |
Gael's avatar
Gael committed
108
109
| **fun_pack()** | check if R packages are present and import into the working environment |
| **fun_python_pack()** | check if python packages are present |
Gael  MILLOT's avatar
Gael MILLOT committed
110

111
112
| Print / Exporting results (text & tables) | |
| --- | --- |
113
114
| **fun_report()** | print strings or results into a log file |
| **fun_get_message()** | catch the error/warning/other messages of an evaluated expression |
Gael  MILLOT's avatar
Gael MILLOT committed
115
116


117
## HOW TO LOAD AND MANIPULATE cute_little_R_functions
Gael  MILLOT's avatar
Gael MILLOT committed
118
119


120
Download the desired Tagged version, never the current master, at https://gitlab.pasteur.fr/gmillot/cute_little_R_functions/-/tags
Gael  MILLOT's avatar
Gael MILLOT committed
121

Gael's avatar
Gael committed
122
For that:
Gael  MILLOT's avatar
Gael MILLOT committed
123

Gael's avatar
Gael committed
124
1) Select the desired tagged release
Gael  MILLOT's avatar
Gael MILLOT committed
125

Gael's avatar
Gael committed
126
127
128
129
130
131
2) Browse files

3) Display the cute_little_R_functions.R as raw file

4) Source the file using the url address. Example:

132
`  source("https://gitlab.pasteur.fr/gmillot/cute_little_R_functions/-/raw/557976d693e37b499b89c76e4b2142846eb89d5b/cute_little_R_functions.R")  `
Gael  MILLOT's avatar
Gael MILLOT committed
133

134
Complete description of each function is at the beginning of the function body. To obtain it:
Gael  MILLOT's avatar
Gael MILLOT committed
135

136
1) Either use the cute_little_R_functions.docx.
Gael's avatar
Gael committed
137
138

2) Or in the R/RStudio console, type the name of the function without brackets. Example : `fun_info`.
Gael  MILLOT's avatar
Gael MILLOT committed
139
140


141
## VERSIONS
Gael  MILLOT's avatar
Gael MILLOT committed
142

143
The different releases are tagged [here](https://gitlab.pasteur.fr/gmillot/cute_little_R_functions/-/tags)
Gael  MILLOT's avatar
Gael MILLOT committed
144

Gael  MILLOT's avatar
Gael MILLOT committed
145

146
## LICENCE
Gael  MILLOT's avatar
Gael MILLOT committed
147

148
149
150
This package of scripts can be redistributed and/or modified under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchandability or fitness for a particular purpose.
See the GNU General Public License for more details at https://www.gnu.org/licenses.
Gael  MILLOT's avatar
Gael MILLOT committed
151

Gael  MILLOT's avatar
Gael MILLOT committed
152

153
## CITATION
Gael  MILLOT's avatar
Gael MILLOT committed
154

155
Not yet published
Gael  MILLOT's avatar
Gael MILLOT committed
156
157


158
## CREDITS
Gael  MILLOT's avatar
Gael MILLOT committed
159

160
[Gael A. Millot](https://gitlab.pasteur.fr/gmillot), Hub-CBD, Institut Pasteur, USR 3756 IP CNRS, Paris, France
Gael  MILLOT's avatar
Gael MILLOT committed
161
162


163
## ACKNOWLEDGEMENTS
Gael  MILLOT's avatar
Gael MILLOT committed
164

165
R and R packages developers
Gael  MILLOT's avatar
Gael MILLOT committed
166

167
168
169
170
171
Gitlab developers


## WHAT'S NEW IN

Gael's avatar
Gael committed
172
173
174
175
176
177
178
### v8.0.0

1) Examples improved

2) Some functions debugged


179
180
181
182
183
### v7.0.0

1) Upgrade to R-4.0.2, among other things


184
### v6.0.0
Gael  MILLOT's avatar
Gael MILLOT committed
185
186

1) name of functions changed:
187

Gael  MILLOT's avatar
Gael MILLOT committed
188
fun_param_check()	fun_check()
189

Gael  MILLOT's avatar
Gael MILLOT committed
190
fun_object_info()	fun_info()
191

Gael  MILLOT's avatar
saving    
Gael MILLOT committed
192
fun_1D_comp()	fun_comp_1d()
193

Gael  MILLOT's avatar
saving    
Gael MILLOT committed
194
fun_2D_comp()	fun_comp_2d()
195

Gael  MILLOT's avatar
saving    
Gael MILLOT committed
196
fun_list_comp()	fun_comp_list()
197

Gael  MILLOT's avatar
saving    
Gael MILLOT committed
198
fun_2D_head()	fun_head()
199

Gael  MILLOT's avatar
saving    
Gael MILLOT committed
200
fun_2D_tail()	fun_tail()
201

Gael  MILLOT's avatar
Gael MILLOT committed
202
fun_dataframe_remodeling()	fun_df_remod()
203

Gael  MILLOT's avatar
Gael MILLOT committed
204
fun_by_case_matrix_op()	fun_mat_op()
205

Gael  MILLOT's avatar
Gael MILLOT committed
206
fun_rounding()	fun_round()
207

208
fun_90clock_matrix_rot()	fun_mat_rotate()
209

210
fun_hexa_hsv_color_matrix()	fun_mat_num2color()
211

Gael  MILLOT's avatar
Gael MILLOT committed
212
fun_graph_param_prior_plot()	fun_prior_plot()
213

Gael  MILLOT's avatar
Gael MILLOT committed
214
fun_feature_post_plot()	fun_post_plot()
215

Gael  MILLOT's avatar
Gael MILLOT committed
216
fun_window_width_resizing()	fun_width()
217

Gael  MILLOT's avatar
Gael MILLOT committed
218
fun_open_window()	fun_open()
219

Gael  MILLOT's avatar
Gael MILLOT committed
220
fun_close_specif_window()	fun_close()
221

Gael  MILLOT's avatar
Gael MILLOT committed
222
fun_var_trim_display()	fun_trim()
223

Gael  MILLOT's avatar
Gael MILLOT committed
224
fun_export_data()	fun_report()
Gael  MILLOT's avatar
Gael MILLOT committed
225

226
227


Gael  MILLOT's avatar
Gael MILLOT committed
228
2) new functions added:
229

Gael  MILLOT's avatar
Gael MILLOT committed
230
fun_name_change()
231

Gael  MILLOT's avatar
Gael MILLOT committed
232
fun_mat_fill()
233

234
fun_permut()
235

Gael  MILLOT's avatar
Gael MILLOT committed
236
fun_permut_consec()
237

Gael  MILLOT's avatar
Gael MILLOT committed
238
fun_empty_graph()
239

Gael  MILLOT's avatar
Gael MILLOT committed
240
fun_gg_palette()
241

Gael  MILLOT's avatar
Gael MILLOT committed
242
fun_gg_just()
243

Gael  MILLOT's avatar
saving    
Gael MILLOT committed
244
fun_gg_point_rast()
245

Gael  MILLOT's avatar
Gael MILLOT committed
246
fun_gg_scatter()
247

Gael  MILLOT's avatar
Gael MILLOT committed
248
fun_gg_empty_graph()
249

Gael  MILLOT's avatar
Gael MILLOT committed
250
fun_segmentation()
251

Gael  MILLOT's avatar
Gael MILLOT committed
252
fun_pack()
253

Gael  MILLOT's avatar
Gael MILLOT committed
254
fun_python_pack()
255

Gael  MILLOT's avatar
Gael MILLOT committed
256
fun_warning()
Gael  MILLOT's avatar
Gael MILLOT committed
257

258
259


Gael  MILLOT's avatar
saving    
Gael MILLOT committed
260
3) text error modified in fun_head() and fun_tail(), + deals without all objects but use head() and tail() if not 2D object
Gael  MILLOT's avatar
Gael MILLOT committed
261
262
263

4) in fun_param_check(): (1) has now the class = "vector", (2) argument fun.name added

Gael  MILLOT's avatar
Gael MILLOT committed
264
265
5) writting and debugging message errors improved in all the functions

Gael  MILLOT's avatar
Gael MILLOT committed
266
267
268
6) Functions checked for R version 3.6.1

7) function deprecated:
269

Gael  MILLOT's avatar
Gael MILLOT committed
270
fun_refactorization()
Gael  MILLOT's avatar
Gael MILLOT committed
271
272


273
### v5.1.0
Gael  MILLOT's avatar
Gael MILLOT committed
274
275
276
277

1) bugs corrected in fun_2D_head() and fun_2D_tail() functions


278
### v5.0.0
Gael  MILLOT's avatar
Gael MILLOT committed
279
280

1) fun_2D_head() function added
281

Gael  MILLOT's avatar
Gael MILLOT committed
282
2) fun_2D_tail() function added
283

Gael  MILLOT's avatar
Gael MILLOT committed
284
285
286
3) argument "noquote" added in fun_export_data()


287
### v4.9.0
Gael  MILLOT's avatar
Gael MILLOT committed
288
289
290
291

1) fun_mat_inv() function added


292
### v4.8.0
Gael  MILLOT's avatar
Gael MILLOT committed
293
294
295
296

1) magnific argument removed in fun_feature_post_plot() because no need anymore


297
### v4.7.0
Gael  MILLOT's avatar
Gael MILLOT committed
298
299
300
301

1) check of numeric arguments: class = "numeric" -> mode = "numeric" to allow for integers values in these arguments


302
### v4.6.0
Gael  MILLOT's avatar
Gael MILLOT committed
303
304
305
306

1) fun_by_case_matrix_op() added


307
### v4.5.0
Gael  MILLOT's avatar
Gael MILLOT committed
308
309
310
311
312
313

1) fun_open_window() improved to deal with Linux systems

2) fun_graph_param_prior_plot() improved to deal with Linux systems


314
### v4.4.0
Gael  MILLOT's avatar
Gael MILLOT committed
315
316
317
318

1) fun_dataframe_remodeling() now add a ini_rowname column in the output data frame when it is coherent and when initial row names are available (not NULL)


319
### v4.3.0
Gael  MILLOT's avatar
Gael MILLOT committed
320
321
322
323

1) fun_object_info() now manages object class "ordered" "factor"


324
### v4.2.0
Gael  MILLOT's avatar
Gael MILLOT committed
325
326
327
328

1) bug in the fun_2D_comp() function fixed


329
### v4.1.0
Gael  MILLOT's avatar
Gael MILLOT committed
330
331
332
333

1) text.corner replaced by corner.text everywhere


334
### v4.0.0
Gael  MILLOT's avatar
Gael MILLOT committed
335
336
337
338
339
340
341
342
343
344

1) fun_var_trim_display() function added

2) fun_feature_post_plot() function now provides additional coordinates when there are margins between the figure region and the device region

3) fun_2D_comp() function now provide the common row and column names, and a bug fixed in the detection of identical row or column content

4) error messages now mention the function that generates this message 


345
### v3.1.0
Gael  MILLOT's avatar
Gael MILLOT committed
346
347
348
349
350
351

1) fun_export_data() function modified: argument data cannot be NULL

2) the debugging line containing r_debugging_tools-v1.2.R updated for the new position of this script


352
### v3.0.0
Gael  MILLOT's avatar
Gael MILLOT committed
353

Gael  MILLOT's avatar
Gael MILLOT committed
354
1) cute_little_functions.R renamed cute_little_R_functions.R
Gael  MILLOT's avatar
Gael MILLOT committed
355

Gael  MILLOT's avatar
Gael MILLOT committed
356
357
2) function fun_dataframe_flipping() has been renamed fun_dataframe_remodeling()

Gael  MILLOT's avatar
Gael MILLOT committed
358
3) more examples added, also draws added in the .docx file for fun_dataframe_remodeling()
Gael  MILLOT's avatar
Gael MILLOT committed
359
360


361
### v2.0.1
Gael  MILLOT's avatar
Gael MILLOT committed
362
363
364
365

1) functions that use other functions from this toolset now check if these required functions are indeed present in the R environment


366
### v2.0.0
Gael  MILLOT's avatar
Gael MILLOT committed
367
368
369
370
371
372
373
374

1) fun_feature_post_plot() function improved: Now independent magnification for x axis/labels and y axis/labels. BEWARE: argument names have been modified

2) Bug corrected in fun_graph_param_prior_plot() function

3) Bug corrected in fun_refactorization() function


375
376
### v1.3

Gael  MILLOT's avatar
Gael MILLOT committed
377
1) fun_1D_comp() function improved: provide the common elements, common names and common levels if exist
Gael  MILLOT's avatar
Gael MILLOT committed
378
379


Gael's avatar
Gael committed
380
381
382
### v1

Everything