R Style and Readability
Clear Names
Prefer Descriptive Labels
Readable R code uses names that describe the role of each value rather than its position or temporary history.
Program
Play the script to choose a cleaned name and see how a readable label carries meaning.
clear_names.R
Replay: real traced execution (multi-file project)
style_index <- 2
raw_names <- c("Total Sales", "customer ID", "net-profit")
clean_names <- c("total_sales", "customer_id", "net_profit")
chosen <- clean_names[style_index]
label <- paste("name", chosen, sep = ":")
cat(label, "\n", sep = "")
style_index <- 1
raw_names <- c("Total Sales", "customer ID", "net-profit")
clean_names <- c("total_sales", "customer_id", "net_profit")
chosen <- clean_names[style_index]
label <- paste("name", chosen, sep = ":")
cat(label, "\n", sep = "")
style_index <- 3
raw_names <- c("Total Sales", "customer ID", "net-profit")
clean_names <- c("total_sales", "customer_id", "net_profit")
chosen <- clean_names[style_index]
label <- paste("name", chosen, sep = ":")
cat(label, "\n", sep = "")
style_index ← 2
1style_index <- 22raw_names <- c("Total Sales", "customer ID", "net-profit")values this step2style_indexraw_names ← Total Sales, customer ID, net-profit
1style_index <- 22raw_names <- c("Total Sales", "customer ID", "net-profit")3clean_names <- c("total_sales", "customer_id", "net_profit")values this stepTotal Sales, customer ID, net-profitraw_namesclean_names ← total_sales, customer_id, net_profit
2raw_names <- c("Total Sales", "customer ID", "net-profit")3clean_names <- c("total_sales", "customer_id", "net_profit")4chosen <- clean_names[style_index]values this steptotal_sales, customer_id, net_profitclean_nameschosen ← customer_id
3clean_names <- c("total_sales", "customer_id", "net_profit")4chosen <- clean_names[style_index]5label <- paste("name", chosen, sep = ":")values this stepcustomer_idchosen2style_indextotal_sales, customer_id, net_profitclean_nameslabel ← name:customer_id
4chosen <- clean_names[style_index]5label <- paste("name", chosen, sep = ":")6cat(label, "\n", sep = "")values this stepname:customer_idlabelcustomer_idchosencat(label, " ", sep = "")
5label <- paste("name", chosen, sep = ":")6cat(label, "\n", sep = "")outputname:customer_idvalues this stepname:customer_idlabel
style_index ← 1
1style_index <- 12raw_names <- c("Total Sales", "customer ID", "net-profit")values this step1style_indexraw_names ← Total Sales, customer ID, net-profit
1style_index <- 12raw_names <- c("Total Sales", "customer ID", "net-profit")3clean_names <- c("total_sales", "customer_id", "net_profit")values this stepTotal Sales, customer ID, net-profitraw_namesclean_names ← total_sales, customer_id, net_profit
2raw_names <- c("Total Sales", "customer ID", "net-profit")3clean_names <- c("total_sales", "customer_id", "net_profit")4chosen <- clean_names[style_index]values this steptotal_sales, customer_id, net_profitclean_nameschosen ← total_sales
3clean_names <- c("total_sales", "customer_id", "net_profit")4chosen <- clean_names[style_index]5label <- paste("name", chosen, sep = ":")values this steptotal_saleschosen1style_indextotal_sales, customer_id, net_profitclean_nameslabel ← name:total_sales
4chosen <- clean_names[style_index]5label <- paste("name", chosen, sep = ":")6cat(label, "\n", sep = "")values this stepname:total_saleslabeltotal_saleschosencat(label, " ", sep = "")
5label <- paste("name", chosen, sep = ":")6cat(label, "\n", sep = "")outputname:total_salesvalues this stepname:total_saleslabel
style_index ← 3
1style_index <- 32raw_names <- c("Total Sales", "customer ID", "net-profit")values this step3style_indexraw_names ← Total Sales, customer ID, net-profit
1style_index <- 32raw_names <- c("Total Sales", "customer ID", "net-profit")3clean_names <- c("total_sales", "customer_id", "net_profit")values this stepTotal Sales, customer ID, net-profitraw_namesclean_names ← total_sales, customer_id, net_profit
2raw_names <- c("Total Sales", "customer ID", "net-profit")3clean_names <- c("total_sales", "customer_id", "net_profit")4chosen <- clean_names[style_index]values this steptotal_sales, customer_id, net_profitclean_nameschosen ← net_profit
3clean_names <- c("total_sales", "customer_id", "net_profit")4chosen <- clean_names[style_index]5label <- paste("name", chosen, sep = ":")values this stepnet_profitchosen3style_indextotal_sales, customer_id, net_profitclean_nameslabel ← name:net_profit
4chosen <- clean_names[style_index]5label <- paste("name", chosen, sep = ":")6cat(label, "\n", sep = "")values this stepname:net_profitlabelnet_profitchosencat(label, " ", sep = "")
5label <- paste("name", chosen, sep = ":")6cat(label, "\n", sep = "")outputname:net_profitvalues this stepname:net_profitlabel
descriptive names
Names such as `total_sales` and `customer_id` describe what a value means.
consistent style
Using one naming style makes a script easier to scan.
lookup
The index selects one readable name from a small vector.