• Une équipe d'experts du langage R pour tous vos besoins

    R experts, for all your R needs

Conception et déploiement d’applications Shiny

Application et dashboard à partir du framework Shiny

Installation d’infrastructure et serveur R

Rstudio serveur, Rconnect, Shinyproxy, Shiny server…

Optimisation de codes et scripts R

A la recherche de la performance et de la maintenabilité

Développements dans l’écosystème R

Création de package, mise en production d’algorithme, ...

Migration de code SAS vers R

Parce que SAS il y a mieux mais c’est moins cher.

Contributions open-source

Nos contributions pour la communauté R

"Des experts R à votre service"

Consultants logiciel R

Chez ThinkR nous sommes des passionnés de R. Une équipe de développeurs et consultants R avec un fort savoir faire aussi bien en développement R qu’en déploiement d’application ou en installation d’infrastructure R.

Faîtes nous confiance pour mener à bien vos projets nécessitant une parfaite maîtrise du langage R :

  • Création de package R
  • Mise en place des bonnes pratiques de développement
  • Optimisation de code
  • Application Shiny
  • Installation et configuration de Rstudio Connect
  • Rstudio serveur ou ShinyProxy avec Docker
  • Formations R avancées

2024-12-18 / Colin Fay

Découvrez Rlinguo, une application mobile native avec du R

TL;DR Rlinguo est une application mobile révolutionnaire qui utilise R en backend pour gérer sa logique métier. Disponible dès maintenant en téléchargement : iOS sur l’App Store Android sur le Google Play Store Oui, vous avez bien lu : le futur, c’est maintenant, et R peut tourner sur votre téléphone portable. Il était une fois… Je développe des applications web ...

2024-12-09 / Colin Fay

Programmation parallèle et asynchrone dans Shiny avec future, promise, future_promise, et ExtendedTask

Illustration via ChatGPT. Il y a trois choses difficiles en informatique. L’une d’elles est de faire écrire « Invalidation » correctement par ChatGPT sur une image. ​ Il existe un dicton qui dit : « Il n’y a que deux choses difficiles en informatique : l’invalidation du cache et le nommage des variables. » Eh bien, je dirais qu’il y en a ...

2024-11-22 / Arthur Bréant

Signature.py: application lauréate du Shiny Contest 2024

🏆 Nous avons le plaisir d’annoncer que {signature.py} est la grande gagnante du Shiny Contest 2024 dans la catégorie ‘Meilleure application Shiny avec Python’ ! Cette année, Posit a relancé le Shiny Contest, un concours dédié au développement d’applications Shiny. Les participants doivent créer une application personelle ou professionelle, qui répond à un problème spécifique. Les applications sont ensuite jugées ...

2024-11-19 / Colin Fay

Vous attendiez des applications mobiles natives avec R ? L’attente est terminée.

webR et la nouvelle génération d’applications avec R Au cours des derniers mois, j’ai partagé comment webR transformera notre manière de créer des applications intégrant R. Si vous ne le savez pas encore, webR est une compilation de R en WebAssembly. En termes simples, cela permet à R de fonctionner dans des environnements JavaScript. Si vous êtes familier avec le ...

2024-10-16 / Yohann Mansiaux

Au-delà des fonctions : comment enrichir un package R avec des données

En tant que développeur de package, on prête une attention particulière à nos fonctions maisons, à leur documentation et à leurs tests unitaires. Pour rendre l’expérience utilisateur encore plus complète, il peut être utile d’y incorporer des données. On vous explique tout ici ! Si vous n’êtes pas familier de l’implémentation des tests unitaires, nous vous conseillons de lire notre ...

2024-10-04 / Murielle

Attentes, vérifiées ! Plongez dans l’univers des tests unitaires avec expect_*()

Les tests unitaires sont essentiels dans le développement d’un package R. Ils garantissent que vos fonctions fonctionnent comme prévu, tout en vous protégeant contre les régressions lorsque vous améliorez ou modifiez votre code. Grâce au package {testthat}, écrire et automatiser des tests en R devient simple et intuitif. Au cœur de cette démarche, les fonctions expect_*() jouent un rôle central ...

2024-09-03 / Yohann Mansiaux

Boostez votre application shiny avec des dataviz interactives : une plongée dans la librairie JavaScript Chart.js

Poursuivons notre exploration de l’intégration de code JavaScript au sein d’une application {shiny} ! Nous allons montrer comment sortir des graphiques classiques produits en R base ou avec {ggplot2} pour aller fouiller du côté des librairies JavaScript de production de dataviz interactives, en particulier de la librairie Chart.js. Si vous avez manqué notre premier article sur l’intégration de librairies JavaScript ...

2024-08-26 / Colin Fay

{golem} 0.5.0 est maintenant disponible

Image d’en-tête générée par ChatGPT Nous sommes ravis d’annoncer la sortie de {golem} version 0.5.0 ! Cette mise à jour est remplie de nouvelles fonctionnalités, d’améliorations et de corrections de bugs qui simplifieront votre processus de développement d’applications Shiny. Vous pouvez télécharger la dernière version depuis votre dépôt CRAN préféré, ou en exécutant la commande suivante dans R : pak::pak( « thinkr-open/[email protected] » ...

gtlabr hex logo inside a rectangle

2024-05-17 / Sébastien Rochette

gitlabr v2.1.0 – gitlab-ci avec ‘pak’ et fonctions pour gérer les groupes sur GitLab

Pas mal de nettoyage, des nouvelles fonctionnalités et des corrections de bugs pour cette nouvelle version de ‘gitlabr’. Vous y trouverez des templates de CI/CD tout neufs et des fonctions pour gérer les groupes GitLab depuis R.   Du gitlab-ci tout neuf avec ‘pak’, prêt à l’emploi Le template pour le check de packages R utilise {pak} pour la gestion ...

2024-04-29 / Yohann Mansiaux

Mettre un coup de polish dans son appli shiny en utilisant une librairie JavaScript : l’exemple de sweetalert2

Vous trouvez certains composants de {shiny} peu fonctionnels ou austères ? Vous cherchez à implémenter une fonctionnalité particulière dans votre appli mais celle-ci est absente de la boite à outils de {shiny} ? Jetez un oeil du côté du JavaScript !. Le JavaScript est un langage de programmation très populaire qui est souvent utilisé pour ajouter des fonctionnalités à des ...

2024-02-21 / Vincent Guyader

Optimisation des performances en R : un exemple avec l’utilisation de Mémoise

Contexte Que ce soit pendant les (formations) que je peux donner ou les (coaching) que je peux faire, il y a bien souvent un moment où je pars dans un long laïus sur la puissance et l’utilité du caching. De à quel point c’est génial, pas si compliqué que ça à mettre en place et super intéressant. La dernière fois ...

2024-02-16 / Swann Floc’hlay

Dompter son namespace avec un zest de suggests

On la connait tous, cette petite vague de fébrilité qui nous traverse quand on regarde tourner le check de son tout nouveau commit en se disant “Où ça pourrait bien bloquer ?”. Et soudain, les trois petits ticks salvateurs 0 errors ✔ | 0 warnings ✔ | 0 notes ✔ Allelhuia ! 🎉 On git commit le tout, on git ...

banner with sticker logo of fusen package

2023-12-12 / Sébastien Rochette

‘fusen’ v0.6.0 (beta) : un nouveau parseur Rmd/Qmd avec ‘lightparser’ à tester avant release

{fusen} s’appuie désormais sur {lightparser} pour détecter les différentes parties d’un fichier Rmd ou Qmd avant de gonfler votre fichier plat en tant que package R. Avant la sortie sur CRAN, j’ai besoin que vous testiez la version de développement et me signaliez les cas particuliers avec vos fichiers plats. Pas l’temps d’tout lire Veuillez essayer la version préliminaire de ...

2023-12-04 / Florence Mounier

{checkhelper} est sur le CRAN : pour ne plus avoir peur de lancer un check

Vous avez fait un super package dont vous êtes fier·e et vous souhaitez le partager avec la communauté R ? Peut-être même le soumettre au CRAN ? Avant celà, vous savez que quelques checks sont recommandés.. si si vous le savez ! mais devtools::check() vous renvoie 7 warnings, 12 notes et 200 lignes pas très claires alors… Alors vous êtes ...

fusen - Gotta inflate' em all

2023-07-21 / Yohann Mansiaux

fusen v0.5: « inflatez » les tous !

Finie l’amnésie pour {fusen} ! La v0.5 lui permet maintenant d’avoir de la “mémoire”, ce qui va notamment vous permettre de gonfler simultanément l’ensemble de vos fichiers plats. Cette dernière version de {fusen} vise à offrir une expérience de développement de packages toujours plus fluide, pour les utilisateurs débutants comme pour les vieux routiers de son utilisation. {fusen} continue sa ...

2023-06-05 / Vincent Guyader

Dompter le téléchargement de fichier dans shiny

Mais pourquoi downloadHandler me retourne un fichier vide maintenant!? Contexte avec downloadHandler Quand on commence a jouer avec {shiny} on arrive généralement à un moment ou il est nécessaire de proposer à l’utilisateur de récuperer un document généré par l’application. Ce document peut etre un rapport pdf, un png un jpg ou que ce ce soit d’autre. La fonction adaptée ...