De ce nu pot citi codul tău?

Introducere în scrierea funcțiilor în R

Richie Cotton

Data Evangelist at DataCamp

Verbe dplyr

select() selectează coloane

filter() filtrează rânduri

Introducere în scrierea funcțiilor în R

Numele funcțiilor trebuie să conțină un verb

  • get
  • calculate (sau calc)
  • run
  • process
  • import
  • clean
  • tidy
  • draw
Introducere în scrierea funcțiilor în R

lm() este prost denumită

  • Acronimele nu sunt autoexplicative
  • Nu conține un verb
  • Există multe tipuri diferite de modele liniare

Un nume mai bun ar fi run_linear_regression()

Introducere în scrierea funcțiilor în R

Lizibilitate vs. ușurință în scriere

  • Înțelegerea codului >> scrierea codului
Introducere în scrierea funcțiilor în R

Lizibilitate vs. ușurință în scriere

  • Înțelegerea codului >> scrierea codului
  • Editorii de cod au autocompletare

datacamp-autocomplete.png

Introducere în scrierea funcțiilor în R

Lizibilitate vs. ușurință în scriere

  • Înțelegerea codului >> scrierea codului
  • Editorii de cod au autocompletare
  • Puteți crea aliasuri pentru funcții comune
h <- head
data(cats, package = "MASS")
h(cats)
  Sex Bwt Hwt
1   F 2.0 7.0
2   F 2.0 7.4
3   F 2.0 9.5
4   F 2.1 7.2
5   F 2.1 7.3
6   F 2.1 7.6
Introducere în scrierea funcțiilor în R

Argumentele funcției lm()

args(lm)
function (formula, data, subset, weights, na.action, method = "qr", 
    model = TRUE, x = FALSE, y = FALSE, qr = TRUE, singular.ok = TRUE, 
    contrasts = NULL, offset, ...)
Introducere în scrierea funcțiilor în R

Tipuri de argumente

  • Argumente de date: ce calculați
  • Argumente de detaliu: cum realizați calculul
args(cor)
function (x, y = NULL, use = "everything", 
  method = c("pearson", "kendall", "spearman"))
Introducere în scrierea funcțiilor în R

Argumentele de date trebuie să preceadă argumentele de detaliu

Aceasta nu va funcționa

data %>%
  lm(formula)

deoarece argumentul de date nu este primul.

Introducere în scrierea funcțiilor în R

Funcția revizuită pentru regresia liniară

run_linear_regression <- function(data, formula) {
  lm(formula, data)
}
cats %>% 
  run_linear_regression(Hwt ~ Bet + Sex)
Call:
lm(formula = formula, data = data)

Coefficients:
(Intercept)          Bwt         SexM  
    -0.4150       4.0758      -0.0821
Introducere în scrierea funcțiilor în R

Să exersăm!

Introducere în scrierea funcțiilor în R

Preparing Video For Download...