- 01Setting up (what you'll need)
- 02Your first output (print)
- 03Using variables
- 04Branching (the if statement)
- 05Repeating (the for loop)
- 06Writing your own function
- 07Working with vectors
- 08Repeating (the while loop)
- 09Structured data with lists
- 10Error handling (tryCatch)
- 11Sorting a vector
- 12Recursive functions
- 13Using the handy built-in functions
- 14The switch() function
- 15Applying a condition across a vector with ifelse()
- 16Applying a function across data with sapply()
- 17Writing comments
- 18Logical operators (&&, ||, !)
- 19Constants (the upper-case convention)
- 20Splitting and joining strings (strsplit and paste)
- 21Writing NULL-safe code
- 22Searching a vector (%in%)
- 23Transforming a vector with sapply (the map equivalent)
- 24Tabular data with matrices
- 25Creating your own condition
- 26Default arguments
- 27Set operations (union, intersect, setdiff)
- 28Checking correctness with stopifnot (a first step towards testing)
- 29Higher-order functions (passing a function as an argument)
- 30Stacks and queues (the basics of data structures)
- 31The basics of type conversion (casting)
- 32An introduction to regular expressions (pattern matching)
- 33The binary search algorithm
- 34Building a Caesar cipher (a letter-shifting cipher)
- 35Understanding how bubble sort works
- 36Assembling and displaying a date
- 37Writing several tests together (multiple test cases)
- 38Speeding up calculation with memoization (caching)
- 39Normalizing strings (trimws and case)
- 40Shallow copies versus deep copies
- 41factor, R's equivalent of an enum
- 42Flattening a list
- 43Reversing a string and testing for a palindrome
- 44Pairing up two vectors (the zip operation)
- 45Rounding numbers (floor, ceiling, round)
- 46Assembling multi-line text
- 47Returning several values from a function (lists)
- 48Finding the GCD and LCM (the Euclidean algorithm)
- 49Formatting numbers (aligning digits and decimal places)
- 50Cleaning up with tryCatch's finally
- 51Type-agnostic general functions
- 52The basics of reading and writing files
- 53Generating random numbers
- 54Bitwise operations (bitwAnd, bitwOr, bitwXor, shifts)
- 55Receiving command-line arguments
- 56Pausing for a set time (Sys.sleep)
- 57Watch out for floating-point error
- 58Reading a value from standard input
- 59FizzBuzz (the classic exercise)
- 60Testing whether a number is prime
- 61Set operations (union, intersection, difference)
- 62Converting between bases (binary and hexadecimal)
- 63Checking that brackets match (an application of stacks)
- 64Testing whether two words are anagrams
- 65Testing whether a year is a leap year
- 66Converting temperatures (Celsius and Fahrenheit)
- 67Finding the prime factors
- 68[Project] Build a simple inventory system
Converting temperatures (Celsius and Fahrenheit)
This lesson covers converting between Celsius and Fahrenheit in R, as practice at turning a formula into code.
Celsius to Fahrenheit is "ยฐC ร 9/5 + 32"; Fahrenheit to Celsius is "(ยฐF โ 32) ร 5/9". Unit conversion is a classic programming exercise.
The sample code provides celsius_to_fahrenheit() and fahrenheit_to_celsius(), each following its formula. You can watch 25 degrees Celsius become 77 Fahrenheit and 77 Fahrenheit become 25 Celsius.
A common early stumble is the order of operations. Get the sequence of multiplication, division, and addition wrong in c * 9 / 5 + 32 and the answer is wrong, so it pays to understand the formula before writing it.
It is good practice at turning a plain formula straight into code. Special values such as absolute zero (โ273.15ยฐC) go through the same formula unchanged.
๐งช This site can't compile or run R directly, so it checks on the spot whether what you typed matches the reference code (scoring happens entirely in your browser โ nothing is sent anywhere).
