💡 Инструкция: Выберите один ответ из пяти. На 30 вопросов отведено 85 минут. Читайте код построчно, учитывайте типы, атрибуты, пропуски и допущения анализа. После завершения откроются общий процент, 6 тематических шкал и объяснение к каждому заданию.
Вопрос 1 из 30
Ситуация: Функция должна вернуть по одному среднему на группу, но один обработчик иногда возвращает два числа. Что является главным техническим основанием для разбора?
R Фрагмент R Копировать
library(purrr)
x <- list(1:3,4:6)
result <- map_dbl(x, mean)
result
map() всегда возвращает список, а типизированные варианты map_dbl, map_chr и другие проверяют ожидаемый атомарный тип
list-columns позволяют хранить таблицу или модель для каждой группы, сохраняя связь результата с ключом строки
Воспроизводимый purrr-процесс сохраняет именованные входы, версии функций, seed внутри параллельных задач и ошибки по каждому элементу
Функциональный конвейер должен иметь ясный контракт входа и выхода, управляемые ошибки и сохранённое соответствие элементов
safely() возвращает result и error, possibly() подставляет значение по умолчанию, а quietly() собирает сообщения и предупреждения
Вопрос 5 из 30
Ситуация: Функция должна вернуть по одному среднему на группу, но один обработчик иногда возвращает два числа. Какое заключение останется верным и на новых данных?
R Фрагмент R Копировать
library(purrr)
x <- list(1:3,4:6)
result <- map_dbl(x, mean)
result
map() всегда возвращает список, а типизированные варианты map_dbl, map_chr и другие проверяют ожидаемый атомарный тип; при этом главный риск состоит в том, что map_dbl падает на первом элементе, вернувшем не одно число, что полезно как ранняя проверка контракта
map() всегда возвращает список, а типизированные варианты map_dbl, map_chr и другие проверяют ожидаемый атомарный тип; при этом главный риск состоит в том, что использование общего случайного состояния внутри map делает результат зависимым от порядка элементов и способа выполнения
map() всегда возвращает список, а типизированные варианты map_dbl, map_chr и другие проверяют ожидаемый атомарный тип; следовательно, предупреждения можно не учитывать, если итог выглядит ожидаемо
Воспроизводимый purrr-процесс сохраняет именованные входы, версии функций, seed внутри параллельных задач и ошибки по каждому элементу; при этом главный риск состоит в том, что map_dbl падает на первом элементе, вернувшем не одно число, что полезно как ранняя проверка контракта
Функциональный конвейер должен иметь ясный контракт входа и выхода, управляемые ошибки и сохранённое соответствие элементов; при этом главный риск состоит в том, что краткий map-код может скрывать побочные эффекты, изменение глобального состояния и ошибки только части элементов
Вопрос 6 из 30
Ситуация: Списки данных и параметров сортируются отдельно, после чего настройки применяются к чужим группам. Какой принцип непосредственно относится к этому коду?
R Фрагмент R Копировать
library(purrr)
x <- list(1:3,4:6)
trim <- c(0,.2)
result <- map2_dbl(x, trim, ~mean(.x,trim=.y))
result
Функциональный конвейер должен иметь ясный контракт входа и выхода, управляемые ошибки и сохранённое соответствие элементов
safely() возвращает result и error, possibly() подставляет значение по умолчанию, а quietly() собирает сообщения и предупреждения
map2 и pmap синхронно перебирают несколько входов, требуя совместимых длин или явной переработки длины один
Воспроизводимый purrr-процесс сохраняет именованные входы, версии функций, seed внутри параллельных задач и ошибки по каждому элементу
list-columns позволяют хранить таблицу или модель для каждой группы, сохраняя связь результата с ключом строки
Вопрос 10 из 30
Ситуация: Списки данных и параметров сортируются отдельно, после чего настройки применяются к чужим группам. Какой итог разбора не смешивает правило языка с впечатлением от результата?
R Фрагмент R Копировать
library(purrr)
x <- list(1:3,4:6)
trim <- c(0,.2)
result <- map2_dbl(x, trim, ~mean(.x,trim=.y))
result
map2 и pmap синхронно перебирают несколько входов, требуя совместимых длин или явной переработки длины один; при этом главный риск состоит в том, что несовпадающие векторы параметров могут быть сопоставлены не тем объектам после независимой сортировки
list-columns позволяют хранить таблицу или модель для каждой группы, сохраняя связь результата с ключом строки; при этом главный риск состоит в том, что unnest без контроля может умножить строки и потерять соответствие, если вложенные элементы имеют разную длину
map2 и pmap синхронно перебирают несколько входов, требуя совместимых длин или явной переработки длины один; при этом главный риск состоит в том, что использование общего случайного состояния внутри map делает результат зависимым от порядка элементов и способа выполнения
map2 и pmap синхронно перебирают несколько входов, требуя совместимых длин или явной переработки длины один; поэтому внешний вид напечатанного объекта важнее происхождения и структуры данных
Воспроизводимый purrr-процесс сохраняет именованные входы, версии функций, seed внутри параллельных задач и ошибки по каждому элементу; при этом главный риск состоит в том, что несовпадающие векторы параметров могут быть сопоставлены не тем объектам после независимой сортировки
Вопрос 11 из 30
Ситуация: Пакетная обработка продолжает работу, но сотни ошибок превращаются в NA без журнала причин. Какое правило нужно применить к этому фрагменту прежде всего?
R Фрагмент R Копировать
library(purrr)
f <- safely(function(x) log(x, base='bad'))
result <- map(list(1,2), f)
result
map2 и pmap синхронно перебирают несколько входов, требуя совместимых длин или явной переработки длины один
Воспроизводимый purrr-процесс сохраняет именованные входы, версии функций, seed внутри параллельных задач и ошибки по каждому элементу
safely() возвращает result и error, possibly() подставляет значение по умолчанию, а quietly() собирает сообщения и предупреждения
Функциональный конвейер должен иметь ясный контракт входа и выхода, управляемые ошибки и сохранённое соответствие элементов
map() всегда возвращает список, а типизированные варианты map_dbl, map_chr и другие проверяют ожидаемый атомарный тип
Вопрос 15 из 30
Ситуация: Пакетная обработка продолжает работу, но сотни ошибок превращаются в NA без журнала причин. Как сформулировать вывод без лишних обобщений?
R Фрагмент R Копировать
library(purrr)
f <- safely(function(x) log(x, base='bad'))
result <- map(list(1,2), f)
result
safely() возвращает result и error, possibly() подставляет значение по умолчанию, а quietly() собирает сообщения и предупреждения; при этом главный риск состоит в том, что замена всех ошибок на NA через possibly скрывает различие между отсутствием результата и программным дефектом
map() всегда возвращает список, а типизированные варианты map_dbl, map_chr и другие проверяют ожидаемый атомарный тип; при этом главный риск состоит в том, что map_dbl падает на первом элементе, вернувшем не одно число, что полезно как ранняя проверка контракта
Воспроизводимый purrr-процесс сохраняет именованные входы, версии функций, seed внутри параллельных задач и ошибки по каждому элементу; при этом главный риск состоит в том, что замена всех ошибок на NA через possibly скрывает различие между отсутствием результата и программным дефектом
safely() возвращает result и error, possibly() подставляет значение по умолчанию, а quietly() собирает сообщения и предупреждения; поэтому отсутствие сообщения об ошибке уже подтверждает корректность результата
safely() возвращает result и error, possibly() подставляет значение по умолчанию, а quietly() собирает сообщения и предупреждения; при этом главный риск состоит в том, что использование общего случайного состояния внутри map делает результат зависимым от порядка элементов и способа выполнения
Вопрос 20 из 30
Ситуация: Для каждой группы хранится модель; после раскрытия коэффициентов одна группа создаёт лишние строки и нарушает ключ. Какое заключение лучше всего выдерживает проверку?
R Фрагмент R Копировать
library(dplyr); library(tidyr); library(purrr)
result <- mtcars |> group_nest(cyl) |> mutate(model=map(data, ~lm(mpg~wt,data=.x)))
result
Функциональный конвейер должен иметь ясный контракт входа и выхода, управляемые ошибки и сохранённое соответствие элементов; при этом главный риск состоит в том, что unnest без контроля может умножить строки и потерять соответствие, если вложенные элементы имеют разную длину
list-columns позволяют хранить таблицу или модель для каждой группы, сохраняя связь результата с ключом строки; поэтому достаточно один раз проверить класс объекта на текущем наборе данных
list-columns позволяют хранить таблицу или модель для каждой группы, сохраняя связь результата с ключом строки; при этом главный риск состоит в том, что краткий map-код может скрывать побочные эффекты, изменение глобального состояния и ошибки только части элементов
list-columns позволяют хранить таблицу или модель для каждой группы, сохраняя связь результата с ключом строки; при этом главный риск состоит в том, что unnest без контроля может умножить строки и потерять соответствие, если вложенные элементы имеют разную длину
Воспроизводимый purrr-процесс сохраняет именованные входы, версии функций, seed внутри параллельных задач и ошибки по каждому элементу; при этом главный риск состоит в том, что использование общего случайного состояния внутри map делает результат зависимым от порядка элементов и способа выполнения
Вопрос 21 из 30
Ситуация: Порядок элементов изменили, и результаты перестали совпадать с исходными именами из-за числовой индексации. На какое свойство R здесь следует опереться?
R Фрагмент R Копировать
library(purrr)
x <- list(a=1:3,b=numeric(0),c=4:8)
result <- map(x, ~list(n=length(.x), mean=mean(.x)))
result
list-columns позволяют хранить таблицу или модель для каждой группы, сохраняя связь результата с ключом строки
Воспроизводимый purrr-процесс сохраняет именованные входы, версии функций, seed внутри параллельных задач и ошибки по каждому элементу
Функциональный конвейер должен иметь ясный контракт входа и выхода, управляемые ошибки и сохранённое соответствие элементов
map() всегда возвращает список, а типизированные варианты map_dbl, map_chr и другие проверяют ожидаемый атомарный тип
safely() возвращает result и error, possibly() подставляет значение по умолчанию, а quietly() собирает сообщения и предупреждения
Вопрос 25 из 30
Ситуация: Порядок элементов изменили, и результаты перестали совпадать с исходными именами из-за числовой индексации. Какой вывод точнее всего связывает механизм и главный риск?
R Фрагмент R Копировать
library(purrr)
x <- list(a=1:3,b=numeric(0),c=4:8)
result <- map(x, ~list(n=length(.x), mean=mean(.x)))
result
Функциональный конвейер должен иметь ясный контракт входа и выхода, управляемые ошибки и сохранённое соответствие элементов; следовательно, совпадение числа строк можно считать полной проверкой решения
Функциональный конвейер должен иметь ясный контракт входа и выхода, управляемые ошибки и сохранённое соответствие элементов; при этом главный риск состоит в том, что использование общего случайного состояния внутри map делает результат зависимым от порядка элементов и способа выполнения
Воспроизводимый purrr-процесс сохраняет именованные входы, версии функций, seed внутри параллельных задач и ошибки по каждому элементу; при этом главный риск состоит в том, что краткий map-код может скрывать побочные эффекты, изменение глобального состояния и ошибки только части элементов
Функциональный конвейер должен иметь ясный контракт входа и выхода, управляемые ошибки и сохранённое соответствие элементов; при этом главный риск состоит в том, что краткий map-код может скрывать побочные эффекты, изменение глобального состояния и ошибки только части элементов
map() всегда возвращает список, а типизированные варианты map_dbl, map_chr и другие проверяют ожидаемый атомарный тип; при этом главный риск состоит в том, что map_dbl падает на первом элементе, вернувшем не одно число, что полезно как ранняя проверка контракта
Вопрос 26 из 30
Ситуация: После распараллеливания симуляции те же группы получают другие случайные последовательности. Какое утверждение лучше всего объясняет показанный фрагмент?
R Фрагмент R Копировать
library(purrr)
set.seed(13)
x <- set_names(1:3,c('a','b','c'))
result <- map(x, ~rnorm(2,mean=.x))
result
Функциональный конвейер должен иметь ясный контракт входа и выхода, управляемые ошибки и сохранённое соответствие элементов
safely() возвращает result и error, possibly() подставляет значение по умолчанию, а quietly() собирает сообщения и предупреждения
Воспроизводимый purrr-процесс сохраняет именованные входы, версии функций, seed внутри параллельных задач и ошибки по каждому элементу
map() всегда возвращает список, а типизированные варианты map_dbl, map_chr и другие проверяют ожидаемый атомарный тип
map2 и pmap синхронно перебирают несколько входов, требуя совместимых длин или явной переработки длины один
Вопрос 30 из 30
Ситуация: После распараллеливания симуляции те же группы получают другие случайные последовательности. Что стоит написать в технической рецензии к этому фрагменту?
R Фрагмент R Копировать
library(purrr)
set.seed(13)
x <- set_names(1:3,c('a','b','c'))
result <- map(x, ~rnorm(2,mean=.x))
result
Функциональный конвейер должен иметь ясный контракт входа и выхода, управляемые ошибки и сохранённое соответствие элементов; при этом главный риск состоит в том, что использование общего случайного состояния внутри map делает результат зависимым от порядка элементов и способа выполнения
Воспроизводимый purrr-процесс сохраняет именованные входы, версии функций, seed внутри параллельных задач и ошибки по каждому элементу; при этом главный риск состоит в том, что краткий map-код может скрывать побочные эффекты, изменение глобального состояния и ошибки только части элементов
Воспроизводимый purrr-процесс сохраняет именованные входы, версии функций, seed внутри параллельных задач и ошибки по каждому элементу; при этом главный риск состоит в том, что использование общего случайного состояния внутри map делает результат зависимым от порядка элементов и способа выполнения
map2 и pmap синхронно перебирают несколько входов, требуя совместимых длин или явной переработки длины один; при этом главный риск состоит в том, что несовпадающие векторы параметров могут быть сопоставлены не тем объектам после независимой сортировки
Воспроизводимый purrr-процесс сохраняет именованные входы, версии функций, seed внутри параллельных задач и ошибки по каждому элементу; поэтому повторный запуск в той же сессии заменяет проверку граничных случаев