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

Gael's avatar
Gael committed
40
| | |
41
42
43
44
45
46
47
48
| **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
49
50


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

53
54
| Object analysis | |
| --- | --- |
Gael's avatar
Gael committed
55
56
57
| **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 |
58
59
| **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
60
| **fun_comp_1d()** | comparison of two 1D datasets (vectors, factors, 1D tables) |
61
| **fun_comp_2d()** | comparison of two 2D datasets (matrices, data.drames, tables) |
Gael's avatar
Gael committed
62
63
| **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
64

65
66
| Object modification | |
| --- | --- |
Gael's avatar
Gael committed
67
| **fun_name_change()** | check a vector of character strings and modify any string if present in another vector |
68
69
| **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
70
71
72
73
74
| **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 |
75
| **fun_permut()** | progressively break a vector order |
Gael's avatar
Gael committed
76
| **fun_slide()** | return a computation made on a vector using a sliding window |
Gael  MILLOT's avatar
Gael MILLOT committed
77

78
79
| Graphics management | |
| --- | --- |
80
81
82
83
| **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
84
| **fun_inter_ticks()** | define coordinates of secondary ticks |
85
86
| **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
87

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

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

102
103
| Graphic extraction | |
| --- | --- |
Gael's avatar
Gael committed
104
105
| **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
106

107
108
| Import | |
| --- | --- |
Gael's avatar
Gael committed
109
110
| **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
111

112
113
| Print / Exporting results (text & tables) | |
| --- | --- |
114
115
| **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
116
117


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


121
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
122

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

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

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

3) Display the cute_little_R_functions.R as raw file

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

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

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

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

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
140
141


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

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

Gael  MILLOT's avatar
Gael MILLOT committed
146

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

149
150
151
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
152

Gael  MILLOT's avatar
Gael MILLOT committed
153

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

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


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

161
[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
162
163


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

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

168
169
170
171
172
Gitlab developers


## WHAT'S NEW IN

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

1) Examples improved

2) Some functions debugged


180
181
182
183
184
### v7.0.0

1) Upgrade to R-4.0.2, among other things


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

1) name of functions changed:
188

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

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

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

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

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

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

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

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

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

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

209
fun_90clock_matrix_rot()	fun_mat_rotate()
210

211
fun_hexa_hsv_color_matrix()	fun_mat_num2color()
212

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

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

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

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

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

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

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

227
228


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

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

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

235
fun_permut()
236

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

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

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

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

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

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

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

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

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

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

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

259
260


Gael  MILLOT's avatar
saving    
Gael MILLOT committed
261
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
262
263
264

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

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

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

7) function deprecated:
270

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


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

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


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

1) fun_2D_head() function added
282

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

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


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

1) fun_mat_inv() function added


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

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


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

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


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

1) fun_by_case_matrix_op() added


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

1) fun_open_window() improved to deal with Linux systems

2) fun_graph_param_prior_plot() improved to deal with Linux systems


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

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)


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

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


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

1) bug in the fun_2D_comp() function fixed


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

1) text.corner replaced by corner.text everywhere


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

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 


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

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


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

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

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

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


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

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


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

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


376
377
### v1.3

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


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

Everything