💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. Читайте код построчно, учитывайте типы, атрибуты, пропуски и допущения анализа. После завершения откроются общий процент, 4 тематических шкал и объяснение к каждому заданию.
Вопрос 5 из 20
Ситуация: Ответ API хранит идентификатор, набор меток и вложенные параметры; после упрощения все значения выглядят строками. Какой вывод точнее всего связывает механизм и главный риск?
R Фрагмент R Копировать
x <- list(id = 7L, tags = c('a', 'b'), meta = list(ok = TRUE))
result <- unlist(x)
result
Список сохраняет элементы разных типов и вложенность, не приводя их к одному атомарному типу; при этом главный риск состоит в том, что похожие имена полей делают частичное совпадение неоднозначным и превращают переименование в скрытый источник ошибок
Доступ по имени возвращает нужный элемент, но частичное совпадение через $ может скрыть опечатку в интерактивном коде; при этом главный риск состоит в том, что неосторожный unlist() выпрямляет структуру, выполняет приведение типов и может потерять границы вложенных сущностей
Список сохраняет элементы разных типов и вложенность, не приводя их к одному атомарному типу; следовательно, совпадение числа строк можно считать полной проверкой решения
Оператор [ возвращает подсписок, а [[ извлекает сам элемент и снимает один уровень контейнера; при этом главный риск состоит в том, что замена [[ на [ меняет тип результата, хотя печать одного элемента может выглядеть похоже
Список сохраняет элементы разных типов и вложенность, не приводя их к одному атомарному типу; при этом главный риск состоит в том, что неосторожный unlist() выпрямляет структуру, выполняет приведение типов и может потерять границы вложенных сущностей
Вопрос 6 из 20
Ситуация: Функция mean() получает объект, выбранный из списка, и сообщает, что аргумент не является числовым. Какое утверждение лучше всего объясняет показанный фрагмент?
R Фрагмент R Копировать
x <- list(scores = c(3, 5, 8))
result <- x['scores']
result
Оператор [ возвращает подсписок, а [[ извлекает сам элемент и снимает один уровень контейнера
sapply() пытается упростить результат lapply и потому может вернуть вектор, матрицу либо список в зависимости от данных
Присваивание NULL элементу списка удаляет его, тогда как присваивание list(NULL) сохраняет позицию с нулевым содержимым
Доступ по имени возвращает нужный элемент, но частичное совпадение через $ может скрыть опечатку в интерактивном коде
Список сохраняет элементы разных типов и вложенность, не приводя их к одному атомарному типу
Вопрос 9 из 20
Ситуация: Функция mean() получает объект, выбранный из списка, и сообщает, что аргумент не является числовым. Какая проверка непосредственно подтверждает, что дефект устранён?
Испытайте элементы с разной длиной результата и проверьте dim(), typeof() и names()
Проверьте str(), lengths() и имена на каждом уровне до и после преобразования
Сравните names(), setdiff(required, names(x)) и поведение при близких названиях полей
Проверьте identical(x[1], x[[1]]) и class() результата перед передачей дальше
Проверьте length(), names() и identical(x[[name]], NULL) после изменения
Вопрос 10 из 20
Ситуация: Функция mean() получает объект, выбранный из списка, и сообщает, что аргумент не является числовым. Что стоит написать в технической рецензии к этому фрагменту?
R Фрагмент R Копировать
x <- list(scores = c(3, 5, 8))
result <- x['scores']
result
Оператор [ возвращает подсписок, а [[ извлекает сам элемент и снимает один уровень контейнера; при этом главный риск состоит в том, что замена [[ на [ меняет тип результата, хотя печать одного элемента может выглядеть похоже
Оператор [ возвращает подсписок, а [[ извлекает сам элемент и снимает один уровень контейнера; при этом главный риск состоит в том, что удаление элемента сдвигает числовые позиции и может нарушить код, который обращается к списку по номеру
Доступ по имени возвращает нужный элемент, но частичное совпадение через $ может скрыть опечатку в интерактивном коде; при этом главный риск состоит в том, что похожие имена полей делают частичное совпадение неоднозначным и превращают переименование в скрытый источник ошибок
Присваивание NULL элементу списка удаляет его, тогда как присваивание list(NULL) сохраняет позицию с нулевым содержимым; при этом главный риск состоит в том, что замена [[ на [ меняет тип результата, хотя печать одного элемента может выглядеть похоже
Оператор [ возвращает подсписок, а [[ извлекает сам элемент и снимает один уровень контейнера; поэтому повторный запуск в той же сессии заменяет проверку граничных случаев
Вопрос 15 из 20
Ситуация: После добавления нового поля сокращённое обращение, которое раньше работало, стало возвращать неожиданный результат. Какое заключение останется верным и на новых данных?
R Фрагмент R Копировать
x <- list(total = 10, total_net = 8)
result <- x$total_n
result
Доступ по имени возвращает нужный элемент, но частичное совпадение через $ может скрыть опечатку в интерактивном коде; при этом главный риск состоит в том, что похожие имена полей делают частичное совпадение неоднозначным и превращают переименование в скрытый источник ошибок
Доступ по имени возвращает нужный элемент, но частичное совпадение через $ может скрыть опечатку в интерактивном коде; следовательно, предупреждения можно не учитывать, если итог выглядит ожидаемо
Присваивание NULL элементу списка удаляет его, тогда как присваивание list(NULL) сохраняет позицию с нулевым содержимым; при этом главный риск состоит в том, что похожие имена полей делают частичное совпадение неоднозначным и превращают переименование в скрытый источник ошибок
Оператор [ возвращает подсписок, а [[ извлекает сам элемент и снимает один уровень контейнера; при этом главный риск состоит в том, что замена [[ на [ меняет тип результата, хотя печать одного элемента может выглядеть похоже
Доступ по имени возвращает нужный элемент, но частичное совпадение через $ может скрыть опечатку в интерактивном коде; при этом главный риск состоит в том, что удаление элемента сдвигает числовые позиции и может нарушить код, который обращается к списку по номеру
Вопрос 20 из 20
Ситуация: В структуре ответа нужно оставить поле как явно пустое, но текущая операция иногда полностью удаляет его. Какой итог разбора не смешивает правило языка с впечатлением от результата?
R Фрагмент R Копировать
x <- list(a = 1, b = 2, c = 3)
x['b'] <- list(NULL)
result <- x
result
Присваивание NULL элементу списка удаляет его, тогда как присваивание list(NULL) сохраняет позицию с нулевым содержимым; при этом главный риск состоит в том, что замена [[ на [ меняет тип результата, хотя печать одного элемента может выглядеть похоже
Оператор [ возвращает подсписок, а [[ извлекает сам элемент и снимает один уровень контейнера; при этом главный риск состоит в том, что удаление элемента сдвигает числовые позиции и может нарушить код, который обращается к списку по номеру
Присваивание NULL элементу списка удаляет его, тогда как присваивание list(NULL) сохраняет позицию с нулевым содержимым; при этом главный риск состоит в том, что удаление элемента сдвигает числовые позиции и может нарушить код, который обращается к списку по номеру
Доступ по имени возвращает нужный элемент, но частичное совпадение через $ может скрыть опечатку в интерактивном коде; при этом главный риск состоит в том, что похожие имена полей делают частичное совпадение неоднозначным и превращают переименование в скрытый источник ошибок
Присваивание NULL элементу списка удаляет его, тогда как присваивание list(NULL) сохраняет позицию с нулевым содержимым; поэтому внешний вид напечатанного объекта важнее происхождения и структуры данных