💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. Читайте код построчно, учитывайте типы, атрибуты, пропуски и допущения анализа. После завершения откроются общий процент, 4 тематических шкал и объяснение к каждому заданию.
Вопрос 3 из 20
Ситуация: Данные приходят строками из прибора, но матрица строится без явного указания порядка заполнения. Что следует изменить в коде или процессе?
Явно выровняйте измерения через матрицу, sweep() или проверку длины, а не полагайтесь на recycling
Выберите специализированную функцию или подпишите смысл MARGIN, а размер результата сверяйте с числом строк либо столбцов
Используйте drop = FALSE в интерфейсах, где размерность должна сохраняться независимо от числа выбранных столбцов
Укажите byrow явно, когда порядок входного потока имеет смысл, и задайте dimnames для читаемой проверки
Укажите sep, dec, na.strings и fileEncoding по реальному формату, затем проверьте число столбцов
Вопрос 5 из 20
Ситуация: Данные приходят строками из прибора, но матрица строится без явного указания порядка заполнения. Как сформулировать вывод без лишних обобщений?
R Фрагмент R Копировать
x <- 1:6
result <- matrix(x, nrow = 2)
result
matrix() заполняет значения по столбцам по умолчанию, а byrow = TRUE переключает заполнение по строкам; поэтому отсутствие сообщения об ошибке уже подтверждает корректность результата
matrix() заполняет значения по столбцам по умолчанию, а byrow = TRUE переключает заполнение по строкам; при этом главный риск состоит в том, что перепутанное значение MARGIN в apply() меняет агрегацию по строкам на агрегацию по столбцам при синтаксически корректном коде
m[i, j] выбирает элемент, а пропуск измерения выбирает строку или столбец; drop = FALSE сохраняет матричную форму; при этом главный риск состоит в том, что выбор одного столбца по умолчанию упрощает результат до вектора и ломает код, ожидающий двумерный объект
matrix() заполняет значения по столбцам по умолчанию, а byrow = TRUE переключает заполнение по строкам; при этом главный риск состоит в том, что ожидание построчного заполнения меняет расположение элементов и делает последующие вычисления по строкам неверными
rowSums и colMeans явно задают направление агрегации и обычно надёжнее apply() для стандартных числовых сводок; при этом главный риск состоит в том, что ожидание построчного заполнения меняет расположение элементов и делает последующие вычисления по строкам неверными
Вопрос 10 из 20
Ситуация: Функция обычно получает несколько признаков, но на редком наборе остаётся один столбец и следующий шаг перестаёт принимать объект. Какое заключение лучше всего выдерживает проверку?
R Фрагмент R Копировать
m <- matrix(1:6, nrow = 3)
result <- m[, 1]
result
matrix() заполняет значения по столбцам по умолчанию, а byrow = TRUE переключает заполнение по строкам; при этом главный риск состоит в том, что выбор одного столбца по умолчанию упрощает результат до вектора и ломает код, ожидающий двумерный объект
m[i, j] выбирает элемент, а пропуск измерения выбирает строку или столбец; drop = FALSE сохраняет матричную форму; при этом главный риск состоит в том, что выбор одного столбца по умолчанию упрощает результат до вектора и ломает код, ожидающий двумерный объект
m[i, j] выбирает элемент, а пропуск измерения выбирает строку или столбец; drop = FALSE сохраняет матричную форму; при этом главный риск состоит в том, что ожидание построчного заполнения меняет расположение элементов и делает последующие вычисления по строкам неверными
m[i, j] выбирает элемент, а пропуск измерения выбирает строку или столбец; drop = FALSE сохраняет матричную форму; поэтому достаточно один раз проверить класс объекта на текущем наборе данных
rowSums и colMeans явно задают направление агрегации и обычно надёжнее apply() для стандартных числовых сводок; при этом главный риск состоит в том, что перепутанное значение MARGIN в apply() меняет агрегацию по строкам на агрегацию по столбцам при синтаксически корректном коде
Вопрос 15 из 20
Ситуация: Отчёт должен содержать среднее по каждому наблюдению, но после смены формы матрицы число значений в сводке неожиданно изменилось. Какой вывод точнее всего связывает механизм и главный риск?
R Фрагмент R Копировать
m <- matrix(1:12, nrow = 3)
result <- apply(m, 1, mean)
result
rowSums и colMeans явно задают направление агрегации и обычно надёжнее apply() для стандартных числовых сводок; при этом главный риск состоит в том, что перепутанное значение MARGIN в apply() меняет агрегацию по строкам на агрегацию по столбцам при синтаксически корректном коде
Вектор меньшей длины перерабатывается при поэлементной операции; предупреждение появляется, когда большая длина не кратна меньшей; при этом главный риск состоит в том, что кратная длина не гарантирует смысловую корректность переработки, поэтому ошибка может пройти без предупреждения
rowSums и colMeans явно задают направление агрегации и обычно надёжнее apply() для стандартных числовых сводок; следовательно, совпадение числа строк можно считать полной проверкой решения
matrix() заполняет значения по столбцам по умолчанию, а byrow = TRUE переключает заполнение по строкам; при этом главный риск состоит в том, что перепутанное значение MARGIN в apply() меняет агрегацию по строкам на агрегацию по столбцам при синтаксически корректном коде
rowSums и colMeans явно задают направление агрегации и обычно надёжнее apply() для стандартных числовых сводок; при этом главный риск состоит в том, что ожидание построчного заполнения меняет расположение элементов и делает последующие вычисления по строкам неверными
Вопрос 18 из 20
Ситуация: К каждому столбцу требуется применить свой коэффициент, однако простой оператор умножения распределяет коэффициенты иначе, чем ожидал автор. Что нужно сделать, чтобы ошибка не вернулась на следующем наборе данных?
Используйте drop = FALSE в интерфейсах, где размерность должна сохраняться независимо от числа выбранных столбцов
Интерпретируйте коэффициенты относительно базовых уровней, единиц и взаимодействий, при необходимости вычисляя предельные эффекты
Укажите byrow явно, когда порядок входного потока имеет смысл, и задайте dimnames для читаемой проверки
Явно выровняйте измерения через матрицу, sweep() или проверку длины, а не полагайтесь на recycling
Выберите специализированную функцию или подпишите смысл MARGIN, а размер результата сверяйте с числом строк либо столбцов
Вопрос 20 из 20
Ситуация: К каждому столбцу требуется применить свой коэффициент, однако простой оператор умножения распределяет коэффициенты иначе, чем ожидал автор. Что стоит написать в технической рецензии к этому фрагменту?
R Фрагмент R Копировать
m <- matrix(1:6, nrow = 2)
weights <- c(10, 100)
result <- m * weights
result
Вектор меньшей длины перерабатывается при поэлементной операции; предупреждение появляется, когда большая длина не кратна меньшей; при этом главный риск состоит в том, что перепутанное значение MARGIN в apply() меняет агрегацию по строкам на агрегацию по столбцам при синтаксически корректном коде
Вектор меньшей длины перерабатывается при поэлементной операции; предупреждение появляется, когда большая длина не кратна меньшей; при этом главный риск состоит в том, что кратная длина не гарантирует смысловую корректность переработки, поэтому ошибка может пройти без предупреждения
Вектор меньшей длины перерабатывается при поэлементной операции; предупреждение появляется, когда большая длина не кратна меньшей; поэтому повторный запуск в той же сессии заменяет проверку граничных случаев
rowSums и colMeans явно задают направление агрегации и обычно надёжнее apply() для стандартных числовых сводок; при этом главный риск состоит в том, что кратная длина не гарантирует смысловую корректность переработки, поэтому ошибка может пройти без предупреждения
matrix() заполняет значения по столбцам по умолчанию, а byrow = TRUE переключает заполнение по строкам; при этом главный риск состоит в том, что ожидание построчного заполнения меняет расположение элементов и делает последующие вычисления по строкам неверными