1. Cat strings with levels: DEBUG
, INFO
,
WARNING
, ERROR
, and FATAL
cat2('Debug passed!', level = 'DEBUG')
#> ✔ Debug passed!
cat2('You are all set.', level = 'INFO')
#> ♥ You are all set.
cat2('Wait a second...', level = 'WARNING')
#> ⚠ Wait a second...
cat2('Ooops', level = 'ERROR')
#> ✖ Ooops
cat2('Bi--Doop---', level = 'FATAL')
#> ✖ Bi--Doop---
#> Error:
#> ...
Level FATAL
will raise errors.
2. parse_svec
and deparse_svec
parse_svec
converts characters like
"7-10,14-15"
to numeric vectors
parse_svec("7-10,14-15")
#> [1] 7 8 9 10 14 15
deparse_svec
reverse the process
deparse_svec(c(2,5,3,1,7))
#> [1] "1-3,5,7"
Parameter max_lag
in deparse_svec
changes
the threshold of integers collapsed together:
deparse_svec(c(1,2,4,7,11))
#> [1] "1-2,4,7,11"
deparse_svec(c(1,2,4,7,11), max_lag = 2)
#> [1] "1-4,7,11"
deparse_svec(c(1,2,4,7,11), max_lag = 3)
#> [1] "1-7,11"
3. System Information
The goal is to work as an alternative to retrieve system information. For example, R doesn’t provide functions to get memory limits, or CPU chip-set information on Linux or MacOS.
# Total RAM in bytes
get_ram()
#> 16757338112.0 B
# Print-friendly
to_ram_size(get_ram(), 1024)
#> 15.6 GB
# WARNING: $free is the total RAM - R usage, is no the actual free RAM
mem_limit2()
#> $total
#> 16757338112.0 B
#> $free
#> 16694045120.0 B
4. Interactive Questions
askYesNo
comes with utils
package allows to
ask yes/no questions and returns logical value. If cancel
is entered, then the function returns NA
, if answers other
than yes
, no
or cancel
is given,
it raise an error. dipsaus::ask_yesno
will ask the question
again and again until the user actually say yes
or
no
> ask_yesno('Please answer an yes/no question, ok?')
## ♥ Please answer an yes/no question, ok? (Yes/no):
> qweee
## ⚠ Please answer Y/yes, N/no, or c to cancel. (Yes/no):
> ttt
## ⚠ Please answer Y/yes, N/no, or c to cancel. (Yes/no):
> y
## [1] TRUE
ask_or_default
instead of asking a yes/no question, it
asks a question with default answer. User don’t have to type the answers
if the they accept defaults: