ПочатиПочніть безкоштовно

Який у мене тип?

Щойно ви побачили чотири функції, які допомагають визначити, з яким типом змінної ви працюєте. class() (docs) і typeof() (docs) є важливими й часто знадобляться. mode() (docs) і storage.mode() (docs) переважно існують для сумісності з мовою програмування S.

У цій вправі ви подивитеся, що повертають ці функції для різних типів змінних. Є й рідкісніші типи, з якими ви могли ще не зустрічатися.

  • array (docs): Узагальнення матриці з довільною кількістю вимірів.
  • formula (docs): Використовується функціями моделювання та візуалізації, щоб визначати зв'язки між змінними.

Також зверніть увагу, що в R є три різновиди функцій.

  • Більшість функцій, з якими ви працюватимете, — це closure.
  • Декілька важливих функцій, як-от length() (docs), відомі як builtin-функції; вони використовують спеціальний механізм обчислення, щоб працювати швидше.
  • Мовні конструкції, такі як if (docs) і while (docs), — теж функції! Їх називають special-функціями.

Ця вправа є частиною курсу

Об'єктно-орієнтоване програмування з S3 та R6 в R

Переглянути курс

Інструкції до вправи

Функція type_info() уже визначена у вашому робочому середовищі та повертає class(), mode(), typeof() і storage.mode() свого аргументу. (Наберіть type_info у консолі, щоб подивитися, як вона працює.)

  • Створіть some_vars — список прикладних об'єктів, наданих в редакторі.
  • Скористайтеся lapply, щоб пройтися по елементах some_vars, викликаючи type_info() для кожного з прикладів, щоб дослідити їхній тип.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Look at the definition of type_info()
type_info

# Create list of example variables
some_vars <- list(
  an_integer_vector = rpois(24, lambda = 5),
  a_numeric_vector = rbeta(24, shape1 = 1, shape2 = 1),
  an_integer_array = array(rbinom(24, size = 8, prob = 0.5), dim = c(2, 3, 4)),
  a_numeric_array = array(rweibull(24, shape = 1, scale = 1), dim = c(2, 3, 4)),
  a_data_frame = data.frame(int = rgeom(24, prob = 0.5), num = runif(24)),
  a_factor = factor(month.abb),
  a_formula = y ~ x,
  a_closure_function = mean,
  a_builtin_function = length,
  a_special_function = `if`
)

# Loop over some_vars calling type_info() on each element to explore them
___
Редагувати та запускати код