The beauty of R is its versatility and of course the community 💜 you can use R (and different #CRAN packages) for literally anything (I use #shiny to build web applications, #blogdown to set up and maintain my website, #xaringan to create slide decks, ….).
All these great tools build upon one “little” (or not so little) thing: functions!
💡 What are functions?
A function is an inherent code block that performs a specific task, such as calculating a sum. And that's exactly what we are doing now 😊
You give your function a name (name_of_the_function), define some arguments (arguments), and put some content in the function. Here you define how the function should proceed with the input (function_content).
Let’s use a simple example - a function that calculates the sum:
You have the name of your function (make_sum), two arguments (a and b), and the operation inside the function (calculating the sum, storing it in c, and returning c).
You theoretically don't have to use the return statement here because the function will implicitly return the last object created but I prefer to be more explicit and to have more control (and understanding) of what my function does 🤓
When I write functions, I usually have a more or less working code in my head (or in a script), copy-paste it into the function environment and let it run 🏃🏼♀️ (it comes, of course, with a lot of debugging and problem-solving time - but more on this tomorrow 😊)
• • •
Missing some Tweet in this thread? You can try to
force a refresh
@antoine_fabri Let’s take a look at it by using our make_sum function from yesterday. We wrote this simple function that calculates the sum:
@antoine_fabri But what happens under the hood? We can see it here in code language but wouldn't it be great to see it more visually? Here's {flow}'s moment to shine! ✨ Run this line of code and you'll get a flow diagram that shows you how the function works 🥳
Yesterday we talked about function writing and how to write them in R. But there is (unfortunately) a chance that your function won't work at the first try - and that's where debugging comes in 🕵️♀️
Ways to approach this problem are, for instance, to google the error message (if there is one), take separate parts of your code and let them run, or to use the more formal debugging tools that #rstats offers.
One major thing that I learned throughout the years is the power of #debugging. Irrespective of the programming language I use, debugging is for me key when it comes to understanding the functionality of code (also for code written by someone else).
Let's use the remaining time today to dig into best practices when it comes to function writing first ✨ It's a loose collection of things that I picked up from others and that I experienced myself as being helpful. They are not ranked in a specific order.
🪄 Use curly brackets - it makes it easier to read and work with your functions.
🪄 Use meaningful names for your functions. It's good to use verbs for functions.
As some inspiration for today, I collected a loose list of recommendations (data/tech communities, blogs, and podcasts) for anyone interested in the #data field 👩🏼💻
💜 R-Ladies, PyLadies, and CorrelAid — these are fantastic communities! Before founding @rladies_cologne last year, I had only positive experiences with the community - they have interesting talks and the Slack community is extremely helpful when you have a question 😊
Hello everyone 👋 my name is Cosima and I usually tweet at @cosima_meyer.
In my professional life, I work as a data scientist in the field of AI. I love my job because it allows me to work with fantastic teams to solve puzzles👩🏼💻
@cosima_meyer Before working in the industry, I explored my passion for research in academia. I hold a PhD from the University of Mannheim in #politicalscience (my dissertation dealt with post-civil war stability 🕊).