A package designed to help people with clumsy fingers.

Installation of fcuk

From CRAN

From github

if (!require(devtools)){install.packages("devtools")}
devtools::install_github("ThinkR-open/fcuk")

Launch and use

See full documentation realised using {pkgdown} at https://thinkr-open.github.io/fcuk/

After launching this package, every error will be analysed. Each time a typo occurs, a correction suggestion will be made under the default error message.

library(fcuk)

# Examples 
sl()
> Error in sl() : impossible de trouver la fonction "sl"
Did you mean : ls or nls ?

iri
> Erreur : objet 'iri' introuvable
Did you mean : IQR or iris ?

view
> Erreur : objet 'view' introuvable
Did you mean : View or deriv ?

mea
> Erreur : objet 'mea' introuvable
Did you mean : mean or frame ?

You can accept fcuk correction proposal by using this notation : .+1 This allows you to rerun the last line by accepting the first correction proposal. In fact .+n will rerun the nth correction proposal.

library(fcuk)

# Examples 
sl()
> Error in sl() : impossible de trouver la fonction "sl"
Did you mean : ls or nls ?
> .+1
> ls()

Stop fcuk

You can stop fcuk at anytime by calling the remove_error_tracker function. Start the error tracker again with init_error_tracker.

Recurrent use of fcuk

You can launch fcuk with your R session.

.First <- function(){
cat("\n Bonjour !  - ", date(), "\n") 
library(fcuk)
}

It will be more efficient to add this library to your Rprofile. You can use fcuk::add_fcuk_to_rprofile() to do so. Then, any time you launch your R project, fcuk will be launched at the same time.

You can also add fcuk inside your Rprofile.site file. Then you’ll have this functionality inside all your Rstudio projects.

fcuk functions

You’ll typically never need to use the functions contained in fcuk. You just need to launch this library, and fcuk will do its job in the background.

Feedbacks and questions

Feel free to report any issue you may have with this package.

Code of conduct

Please note that the ‘fcuk’ project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.