💡 Инструкция: Выберите один ответ из пяти. На работу отведено 70 минут. После завершения откроются правильные ответы, объяснения и результаты по темам.
Вопрос 1 из 25
Какой механизм Julia определяет поведение строки `a = df[!, :x]`?
x=df[:,c]\neq df[!,c]
Julia Julia · Индексация Копировать
using DataFrames
x = [1, 2, 3]
df = DataFrame(x=x, y=10:10:30)
a = df[!, :x]
b = df[:, :x]
a[1] = 99
b[2] = 88
@show df a b
`select`, `transform` и `combine` различаются формой результата и контекстом группы; преобразование должно явно задавать новые имена и обработку пропусков.
Соединение требует осознанных ключей и проверки кардинальности: повторяющиеся ключи могут размножить строки, а `matchmissing` меняет поведение пропусков.
`groupby` создаёт представление групп, а агрегирование выполняют через `combine`; порядок групп и строк не следует считать предметной гарантией без явной сортировки.
В DataFrames.jl `df[!, :x]` обычно возвращает сам столбец без копии, тогда как `df[:, :x]` создаёт копию; выбор определяет, увидит ли таблица последующую мутацию.
`df[:, :x]` и `df[!, :x]` возвращают один и тот же объект столбца, различаясь только стилем записи.
Вопрос 2 из 25
Какой контрольный тест лучше всего проверит правило, связанное с `a = df[!, :x]`?
Julia Julia · Индексация Копировать
using DataFrames
x = [1, 2, 3]
df = DataFrame(x=x, y=10:10:30)
a = df[!, :x]
b = df[:, :x]
a[1] = 99
b[2] = 88
@show df a b
Проверить на отдельном примере, что соединение требует осознанных ключей и проверки кардинальности: повторяющиеся ключи могут размножить строки, а `matchmissing` меняет поведение пропусков.
Проверить на отдельном примере, что `groupby` создаёт представление групп, а агрегирование выполняют через `combine`; порядок групп и строк не следует считать предметной гарантией без явной сортировки.
Проверить на отдельном примере, что `df[:, :x]` и `df[!, :x]` возвращают один и тот же объект столбца, различаясь только стилем записи.
Проверить на отдельном примере, что в DataFrames.jl `df[!, :x]` обычно возвращает сам столбец без копии, тогда как `df[:, :x]` создаёт копию; выбор определяет, увидит ли таблица последующую мутацию.
Проверить на отдельном примере, что `select`, `transform` и `combine` различаются формой результата и контекстом группы; преобразование должно явно задавать новые имена и обработку пропусков.
Вопрос 3 из 25
Что должно остаться истинным после рефакторинга участка с `a = df[!, :x]`?
Julia Julia · Индексация Копировать
using DataFrames
x = [1, 2, 3]
df = DataFrame(x=x, y=10:10:30)
a = df[!, :x]
b = df[:, :x]
a[1] = 99
b[2] = 88
@show df a b
Сохранить в реализации правило: `select`, `transform` и `combine` различаются формой результата и контекстом группы; преобразование должно явно задавать новые имена и обработку пропусков.
Сохранить в реализации правило: Соединение требует осознанных ключей и проверки кардинальности: повторяющиеся ключи могут размножить строки, а `matchmissing` меняет поведение пропусков.
Сохранить в реализации правило: В DataFrames.jl `df[!, :x]` обычно возвращает сам столбец без копии, тогда как `df[:, :x]` создаёт копию; выбор определяет, увидит ли таблица последующую мутацию.
Сохранить в реализации правило: `df[:, :x]` и `df[!, :x]` возвращают один и тот же объект столбца, различаясь только стилем записи.
Сохранить в реализации правило: `groupby` создаёт представление групп, а агрегирование выполняют через `combine`; порядок групп и строк не следует считать предметной гарантией без явной сортировки.
Вопрос 4 из 25
При переносе кода с `a = df[!, :x]` в библиотеку какой критерий нельзя заменять впечатлением «пример работает»?
x=df[:,c]\neq df[!,c]
Приёмка должна подтвердить, что `groupby` создаёт представление групп, а агрегирование выполняют через `combine`; порядок групп и строк не следует считать предметной гарантией без явной сортировки.
Приёмка должна подтвердить, что в DataFrames.jl `df[!, :x]` обычно возвращает сам столбец без копии, тогда как `df[:, :x]` создаёт копию; выбор определяет, увидит ли таблица последующую мутацию.
Приёмка должна подтвердить, что соединение требует осознанных ключей и проверки кардинальности: повторяющиеся ключи могут размножить строки, а `matchmissing` меняет поведение пропусков.
Приёмка должна подтвердить, что `select`, `transform` и `combine` различаются формой результата и контекстом группы; преобразование должно явно задавать новые имена и обработку пропусков.
Приёмка должна подтвердить, что `df[:, :x]` и `df[!, :x]` возвращают один и тот же объект столбца, различаясь только стилем записи.
Вопрос 5 из 25
Как сформулировать границу механизма `a = df[!, :x]` без чрезмерного обещания?
Указать в документации: `select`, `transform` и `combine` различаются формой результата и контекстом группы; преобразование должно явно задавать новые имена и обработку пропусков.
Указать в документации: `groupby` создаёт представление групп, а агрегирование выполняют через `combine`; порядок групп и строк не следует считать предметной гарантией без явной сортировки.
Указать в документации: В DataFrames.jl `df[!, :x]` обычно возвращает сам столбец без копии, тогда как `df[:, :x]` создаёт копию; выбор определяет, увидит ли таблица последующую мутацию.
Указать в документации: Соединение требует осознанных ключей и проверки кардинальности: повторяющиеся ключи могут размножить строки, а `matchmissing` меняет поведение пропусков.
Указать в документации: `df[:, :x]` и `df[!, :x]` возвращают один и тот же объект столбца, различаясь только стилем записи.
Вопрос 6 из 25
Что именно следует из фрагмента с `out = transform(df, :x => ByRow(v -> ismissing(v) ? missing : v^2) => :x2)`?
z_i=g(x_i)
Julia Julia · Преобразования Копировать
using DataFrames
df = DataFrame(id=1:3, x=[1.0, 2.0, missing])
out = transform(df, :x => ByRow(v -> ismissing(v) ? missing : v^2) => :x2)
@show out
При работе с группами `transform` сворачивает каждую группу до одной строки по тем же правилам, что и `combine`.
`groupby` создаёт представление групп, а агрегирование выполняют через `combine`; порядок групп и строк не следует считать предметной гарантией без явной сортировки.
В DataFrames.jl `df[!, :x]` обычно возвращает сам столбец без копии, тогда как `df[:, :x]` создаёт копию; выбор определяет, увидит ли таблица последующую мутацию.
`select`, `transform` и `combine` различаются формой результата и контекстом группы; преобразование должно явно задавать новые имена и обработку пропусков.
Соединение требует осознанных ключей и проверки кардинальности: повторяющиеся ключи могут размножить строки, а `matchmissing` меняет поведение пропусков.
Вопрос 7 из 25
Какой тест точнее всего зафиксирует границу поведения `out = transform(df, :x => ByRow(v -> ismissing(v) ? missing : v^2) => :x2)`?
Julia Julia · Преобразования Копировать
using DataFrames
df = DataFrame(id=1:3, x=[1.0, 2.0, missing])
out = transform(df, :x => ByRow(v -> ismissing(v) ? missing : v^2) => :x2)
@show out
Проверить на отдельном примере, что в DataFrames.jl `df[!, :x]` обычно возвращает сам столбец без копии, тогда как `df[:, :x]` создаёт копию; выбор определяет, увидит ли таблица последующую мутацию.
Проверить на отдельном примере, что `groupby` создаёт представление групп, а агрегирование выполняют через `combine`; порядок групп и строк не следует считать предметной гарантией без явной сортировки.
Проверить на отдельном примере, что при работе с группами `transform` сворачивает каждую группу до одной строки по тем же правилам, что и `combine`.
Проверить на отдельном примере, что `select`, `transform` и `combine` различаются формой результата и контекстом группы; преобразование должно явно задавать новые имена и обработку пропусков.
Проверить на отдельном примере, что соединение требует осознанных ключей и проверки кардинальности: повторяющиеся ключи могут размножить строки, а `matchmissing` меняет поведение пропусков.
Вопрос 8 из 25
Что должно остаться истинным после рефакторинга участка с `out = transform(df, :x => ByRow(v -> ismissing(v) ? missing : v^2) => :x2)`?
Julia Julia · Преобразования Копировать
using DataFrames
df = DataFrame(id=1:3, x=[1.0, 2.0, missing])
out = transform(df, :x => ByRow(v -> ismissing(v) ? missing : v^2) => :x2)
@show out
Сохранить в реализации правило: `select`, `transform` и `combine` различаются формой результата и контекстом группы; преобразование должно явно задавать новые имена и обработку пропусков.
Сохранить в реализации правило: В DataFrames.jl `df[!, :x]` обычно возвращает сам столбец без копии, тогда как `df[:, :x]` создаёт копию; выбор определяет, увидит ли таблица последующую мутацию.
Сохранить в реализации правило: `groupby` создаёт представление групп, а агрегирование выполняют через `combine`; порядок групп и строк не следует считать предметной гарантией без явной сортировки.
Сохранить в реализации правило: При работе с группами `transform` сворачивает каждую группу до одной строки по тем же правилам, что и `combine`.
Сохранить в реализации правило: Соединение требует осознанных ключей и проверки кардинальности: повторяющиеся ключи могут размножить строки, а `matchmissing` меняет поведение пропусков.
Вопрос 9 из 25
Какой результат приёмочного теста подтвердит корректность участка с `out = transform(df, :x => ByRow(v -> ismissing(v) ? missing : v^2) => :x2)`?
z_i=g(x_i)
Приёмка должна подтвердить, что при работе с группами `transform` сворачивает каждую группу до одной строки по тем же правилам, что и `combine`.
Приёмка должна подтвердить, что `groupby` создаёт представление групп, а агрегирование выполняют через `combine`; порядок групп и строк не следует считать предметной гарантией без явной сортировки.
Приёмка должна подтвердить, что соединение требует осознанных ключей и проверки кардинальности: повторяющиеся ключи могут размножить строки, а `matchmissing` меняет поведение пропусков.
Приёмка должна подтвердить, что в DataFrames.jl `df[!, :x]` обычно возвращает сам столбец без копии, тогда как `df[:, :x]` создаёт копию; выбор определяет, увидит ли таблица последующую мутацию.
Приёмка должна подтвердить, что `select`, `transform` и `combine` различаются формой результата и контекстом группы; преобразование должно явно задавать новые имена и обработку пропусков.
Вопрос 11 из 25
Как нужно интерпретировать `g = groupby(df, :group)`, не добавляя к коду лишних гарантий?
\bar{x}_g=|g|^{-1}\sum_{i\in g}x_i
Julia Julia · Группировка Копировать
using DataFrames, Statistics
df = DataFrame(group=["a", "a", "b"], value=[1.0, 3.0, 10.0])
g = groupby(df, :group)
out = combine(g, :value => mean => :mean_value, nrow => :n)
@show out
В DataFrames.jl `df[!, :x]` обычно возвращает сам столбец без копии, тогда как `df[:, :x]` создаёт копию; выбор определяет, увидит ли таблица последующую мутацию.
Соединение требует осознанных ключей и проверки кардинальности: повторяющиеся ключи могут размножить строки, а `matchmissing` меняет поведение пропусков.
`select`, `transform` и `combine` различаются формой результата и контекстом группы; преобразование должно явно задавать новые имена и обработку пропусков.
Порядок групп после `groupby` является стабильной частью публичного контракта и подходит для предметной нумерации.
`groupby` создаёт представление групп, а агрегирование выполняют через `combine`; порядок групп и строк не следует считать предметной гарантией без явной сортировки.
Вопрос 12 из 25
Какой контрольный тест лучше всего проверит правило, связанное с `g = groupby(df, :group)`?
Julia Julia · Группировка Копировать
using DataFrames, Statistics
df = DataFrame(group=["a", "a", "b"], value=[1.0, 3.0, 10.0])
g = groupby(df, :group)
out = combine(g, :value => mean => :mean_value, nrow => :n)
@show out
Проверить на отдельном примере, что `groupby` создаёт представление групп, а агрегирование выполняют через `combine`; порядок групп и строк не следует считать предметной гарантией без явной сортировки.
Проверить на отдельном примере, что в DataFrames.jl `df[!, :x]` обычно возвращает сам столбец без копии, тогда как `df[:, :x]` создаёт копию; выбор определяет, увидит ли таблица последующую мутацию.
Проверить на отдельном примере, что `select`, `transform` и `combine` различаются формой результата и контекстом группы; преобразование должно явно задавать новые имена и обработку пропусков.
Проверить на отдельном примере, что порядок групп после `groupby` является стабильной частью публичного контракта и подходит для предметной нумерации.
Проверить на отдельном примере, что соединение требует осознанных ключей и проверки кардинальности: повторяющиеся ключи могут размножить строки, а `matchmissing` меняет поведение пропусков.
Вопрос 13 из 25
Какое решение устраняет риск вокруг `g = groupby(df, :group)`, не меняя поведение на допустимых данных?
Julia Julia · Группировка Копировать
using DataFrames, Statistics
df = DataFrame(group=["a", "a", "b"], value=[1.0, 3.0, 10.0])
g = groupby(df, :group)
out = combine(g, :value => mean => :mean_value, nrow => :n)
@show out
Сохранить в реализации правило: Порядок групп после `groupby` является стабильной частью публичного контракта и подходит для предметной нумерации.
Сохранить в реализации правило: `groupby` создаёт представление групп, а агрегирование выполняют через `combine`; порядок групп и строк не следует считать предметной гарантией без явной сортировки.
Сохранить в реализации правило: В DataFrames.jl `df[!, :x]` обычно возвращает сам столбец без копии, тогда как `df[:, :x]` создаёт копию; выбор определяет, увидит ли таблица последующую мутацию.
Сохранить в реализации правило: Соединение требует осознанных ключей и проверки кардинальности: повторяющиеся ключи могут размножить строки, а `matchmissing` меняет поведение пропусков.
Сохранить в реализации правило: `select`, `transform` и `combine` различаются формой результата и контекстом группы; преобразование должно явно задавать новые имена и обработку пропусков.
Вопрос 14 из 25
Две реализации участка с `g = groupby(df, :group)` совпадают на обычных данных. Что необходимо проверить перед выпуском?
\bar{x}_g=|g|^{-1}\sum_{i\in g}x_i
Приёмка должна подтвердить, что `select`, `transform` и `combine` различаются формой результата и контекстом группы; преобразование должно явно задавать новые имена и обработку пропусков.
Приёмка должна подтвердить, что порядок групп после `groupby` является стабильной частью публичного контракта и подходит для предметной нумерации.
Приёмка должна подтвердить, что соединение требует осознанных ключей и проверки кардинальности: повторяющиеся ключи могут размножить строки, а `matchmissing` меняет поведение пропусков.
Приёмка должна подтвердить, что в DataFrames.jl `df[!, :x]` обычно возвращает сам столбец без копии, тогда как `df[:, :x]` создаёт копию; выбор определяет, увидит ли таблица последующую мутацию.
Приёмка должна подтвердить, что `groupby` создаёт представление групп, а агрегирование выполняют через `combine`; порядок групп и строк не следует считать предметной гарантией без явной сортировки.
Вопрос 16 из 25
Какое утверждение точнее всего объясняет участок с `out = innerjoin(left, right, on=:id, makeunique=true)`?
|L\Join R|\ge\max(|L|,|R|)\;\text{в общем случае}
Julia Julia · Соединения Копировать
using DataFrames
left = DataFrame(id=[1, 1, 2], x=["a", "b", "c"])
right = DataFrame(id=[1, 1, 3], y=[10, 20, 30])
out = innerjoin(left, right, on=:id, makeunique=true)
@show out nrow(out)
На границе интеграции проверяют схему, типы, единицы и уникальность ключей; автоматическое расширение типа столбца не заменяет договор о данных.
Соединение требует осознанных ключей и проверки кардинальности: повторяющиеся ключи могут размножить строки, а `matchmissing` меняет поведение пропусков.
Соединение по ключу не может увеличить число строк сверх большей таблицы, даже если ключи повторяются с обеих сторон.
В DataFrames.jl `df[!, :x]` обычно возвращает сам столбец без копии, тогда как `df[:, :x]` создаёт копию; выбор определяет, увидит ли таблица последующую мутацию.
`select`, `transform` и `combine` различаются формой результата и контекстом группы; преобразование должно явно задавать новые имена и обработку пропусков.
Вопрос 17 из 25
Какой эксперимент отличит настоящий механизм `out = innerjoin(left, right, on=:id, makeunique=true)` от случайного результата одного запуска?
Julia Julia · Соединения Копировать
using DataFrames
left = DataFrame(id=[1, 1, 2], x=["a", "b", "c"])
right = DataFrame(id=[1, 1, 3], y=[10, 20, 30])
out = innerjoin(left, right, on=:id, makeunique=true)
@show out nrow(out)
Проверить на отдельном примере, что на границе интеграции проверяют схему, типы, единицы и уникальность ключей; автоматическое расширение типа столбца не заменяет договор о данных.
Проверить на отдельном примере, что в DataFrames.jl `df[!, :x]` обычно возвращает сам столбец без копии, тогда как `df[:, :x]` создаёт копию; выбор определяет, увидит ли таблица последующую мутацию.
Проверить на отдельном примере, что `select`, `transform` и `combine` различаются формой результата и контекстом группы; преобразование должно явно задавать новые имена и обработку пропусков.
Проверить на отдельном примере, что соединение по ключу не может увеличить число строк сверх большей таблицы, даже если ключи повторяются с обеих сторон.
Проверить на отдельном примере, что соединение требует осознанных ключей и проверки кардинальности: повторяющиеся ключи могут размножить строки, а `matchmissing` меняет поведение пропусков.
Вопрос 18 из 25
Какую гарантию должна сохранить правка участка с `out = innerjoin(left, right, on=:id, makeunique=true)`?
Julia Julia · Соединения Копировать
using DataFrames
left = DataFrame(id=[1, 1, 2], x=["a", "b", "c"])
right = DataFrame(id=[1, 1, 3], y=[10, 20, 30])
out = innerjoin(left, right, on=:id, makeunique=true)
@show out nrow(out)
Сохранить в реализации правило: На границе интеграции проверяют схему, типы, единицы и уникальность ключей; автоматическое расширение типа столбца не заменяет договор о данных.
Сохранить в реализации правило: `select`, `transform` и `combine` различаются формой результата и контекстом группы; преобразование должно явно задавать новые имена и обработку пропусков.
Сохранить в реализации правило: В DataFrames.jl `df[!, :x]` обычно возвращает сам столбец без копии, тогда как `df[:, :x]` создаёт копию; выбор определяет, увидит ли таблица последующую мутацию.
Сохранить в реализации правило: Соединение требует осознанных ключей и проверки кардинальности: повторяющиеся ключи могут размножить строки, а `matchmissing` меняет поведение пропусков.
Сохранить в реализации правило: Соединение по ключу не может увеличить число строк сверх большей таблицы, даже если ключи повторяются с обеих сторон.
Вопрос 19 из 25
После обновления Julia или пакета поведение участка с `out = innerjoin(left, right, on=:id, makeunique=true)` изменилось. Какой критерий приёмки остаётся корректным?
|L\Join R|\ge\max(|L|,|R|)\;\text{в общем случае}
Приёмка должна подтвердить, что на границе интеграции проверяют схему, типы, единицы и уникальность ключей; автоматическое расширение типа столбца не заменяет договор о данных.
Приёмка должна подтвердить, что в DataFrames.jl `df[!, :x]` обычно возвращает сам столбец без копии, тогда как `df[:, :x]` создаёт копию; выбор определяет, увидит ли таблица последующую мутацию.
Приёмка должна подтвердить, что соединение по ключу не может увеличить число строк сверх большей таблицы, даже если ключи повторяются с обеих сторон.
Приёмка должна подтвердить, что соединение требует осознанных ключей и проверки кардинальности: повторяющиеся ключи могут размножить строки, а `matchmissing` меняет поведение пропусков.
Приёмка должна подтвердить, что `select`, `transform` и `combine` различаются формой результата и контекстом группы; преобразование должно явно задавать новые имена и обработку пропусков.
Вопрос 20 из 25
Какое утверждение о `out = innerjoin(left, right, on=:id, makeunique=true)` является переносимым правилом, а не особенностью одного запуска?
Указать в документации: Соединение требует осознанных ключей и проверки кардинальности: повторяющиеся ключи могут размножить строки, а `matchmissing` меняет поведение пропусков.
Указать в документации: На границе интеграции проверяют схему, типы, единицы и уникальность ключей; автоматическое расширение типа столбца не заменяет договор о данных.
Указать в документации: `select`, `transform` и `combine` различаются формой результата и контекстом группы; преобразование должно явно задавать новые имена и обработку пропусков.
Указать в документации: Соединение по ключу не может увеличить число строк сверх большей таблицы, даже если ключи повторяются с обеих сторон.
Указать в документации: В DataFrames.jl `df[!, :x]` обычно возвращает сам столбец без копии, тогда как `df[:, :x]` создаёт копию; выбор определяет, увидит ли таблица последующую мутацию.
Вопрос 21 из 25
Как нужно интерпретировать `any(ismissing, df.value) && throw(ArgumentError("missing value"))`, не добавляя к коду лишних гарантий?
\operatorname{schema}(D)=S
Julia Julia · Ошибки интеграции Копировать
using DataFrames
function validate_table(df)
required = [:id, :value]
all(in(names(df)), string.(required)) || throw(ArgumentError("schema"))
allunique(df.id) || throw(ArgumentError("duplicate id"))
any(ismissing, df.value) && throw(ArgumentError("missing value"))
return df
end
`select`, `transform` и `combine` различаются формой результата и контекстом группы; преобразование должно явно задавать новые имена и обработку пропусков.
На границе интеграции проверяют схему, типы, единицы и уникальность ключей; автоматическое расширение типа столбца не заменяет договор о данных.
При соединении DataFrames без отдельной настройки согласуют единицы и смысл одноимённых столбцов; разработчику обычно хватает проверить, что операция завершилась без исключения.
В DataFrames.jl `df[!, :x]` обычно возвращает сам столбец без копии, тогда как `df[:, :x]` создаёт копию; выбор определяет, увидит ли таблица последующую мутацию.
Соединение требует осознанных ключей и проверки кардинальности: повторяющиеся ключи могут размножить строки, а `matchmissing` меняет поведение пропусков.
Вопрос 22 из 25
Что нужно подтвердить отдельным примером для `any(ismissing, df.value) && throw(ArgumentError("missing value"))`?
Julia Julia · Ошибки интеграции Копировать
using DataFrames
function validate_table(df)
required = [:id, :value]
all(in(names(df)), string.(required)) || throw(ArgumentError("schema"))
allunique(df.id) || throw(ArgumentError("duplicate id"))
any(ismissing, df.value) && throw(ArgumentError("missing value"))
return df
end
Проверить на отдельном примере, что при соединении DataFrames без отдельной настройки согласуют единицы и смысл одноимённых столбцов; разработчику обычно хватает проверить, что операция завершилась без исключения.
Проверить на отдельном примере, что соединение требует осознанных ключей и проверки кардинальности: повторяющиеся ключи могут размножить строки, а `matchmissing` меняет поведение пропусков.
Проверить на отдельном примере, что `select`, `transform` и `combine` различаются формой результата и контекстом группы; преобразование должно явно задавать новые имена и обработку пропусков.
Проверить на отдельном примере, что на границе интеграции проверяют схему, типы, единицы и уникальность ключей; автоматическое расширение типа столбца не заменяет договор о данных.
Проверить на отдельном примере, что в DataFrames.jl `df[!, :x]` обычно возвращает сам столбец без копии, тогда как `df[:, :x]` создаёт копию; выбор определяет, увидит ли таблица последующую мутацию.
Вопрос 23 из 25
Какую гарантию должна сохранить правка участка с `any(ismissing, df.value) && throw(ArgumentError("missing value"))`?
Julia Julia · Ошибки интеграции Копировать
using DataFrames
function validate_table(df)
required = [:id, :value]
all(in(names(df)), string.(required)) || throw(ArgumentError("schema"))
allunique(df.id) || throw(ArgumentError("duplicate id"))
any(ismissing, df.value) && throw(ArgumentError("missing value"))
return df
end
Сохранить в реализации правило: В DataFrames.jl `df[!, :x]` обычно возвращает сам столбец без копии, тогда как `df[:, :x]` создаёт копию; выбор определяет, увидит ли таблица последующую мутацию.
Сохранить в реализации правило: На границе интеграции проверяют схему, типы, единицы и уникальность ключей; автоматическое расширение типа столбца не заменяет договор о данных.
Сохранить в реализации правило: Соединение требует осознанных ключей и проверки кардинальности: повторяющиеся ключи могут размножить строки, а `matchmissing` меняет поведение пропусков.
Сохранить в реализации правило: `select`, `transform` и `combine` различаются формой результата и контекстом группы; преобразование должно явно задавать новые имена и обработку пропусков.
Сохранить в реализации правило: При соединении DataFrames без отдельной настройки согласуют единицы и смысл одноимённых столбцов; разработчику обычно хватает проверить, что операция завершилась без исключения.
Вопрос 24 из 25
Какой результат приёмочного теста подтвердит корректность участка с `any(ismissing, df.value) && throw(ArgumentError("missing value"))`?
\operatorname{schema}(D)=S
Приёмка должна подтвердить, что `select`, `transform` и `combine` различаются формой результата и контекстом группы; преобразование должно явно задавать новые имена и обработку пропусков.
Приёмка должна подтвердить, что соединение требует осознанных ключей и проверки кардинальности: повторяющиеся ключи могут размножить строки, а `matchmissing` меняет поведение пропусков.
Приёмка должна подтвердить, что при соединении DataFrames без отдельной настройки согласуют единицы и смысл одноимённых столбцов; разработчику обычно хватает проверить, что операция завершилась без исключения.
Приёмка должна подтвердить, что в DataFrames.jl `df[!, :x]` обычно возвращает сам столбец без копии, тогда как `df[:, :x]` создаёт копию; выбор определяет, увидит ли таблица последующую мутацию.
Приёмка должна подтвердить, что на границе интеграции проверяют схему, типы, единицы и уникальность ключей; автоматическое расширение типа столбца не заменяет договор о данных.
Вопрос 25 из 25
Какое ограничение стоит прямо указать в документации к участку с `any(ismissing, df.value) && throw(ArgumentError("missing value"))`?
Указать в документации: В DataFrames.jl `df[!, :x]` обычно возвращает сам столбец без копии, тогда как `df[:, :x]` создаёт копию; выбор определяет, увидит ли таблица последующую мутацию.
Указать в документации: `select`, `transform` и `combine` различаются формой результата и контекстом группы; преобразование должно явно задавать новые имена и обработку пропусков.
Указать в документации: Соединение требует осознанных ключей и проверки кардинальности: повторяющиеся ключи могут размножить строки, а `matchmissing` меняет поведение пропусков.
Указать в документации: На границе интеграции проверяют схему, типы, единицы и уникальность ключей; автоматическое расширение типа столбца не заменяет договор о данных.
Указать в документации: При соединении DataFrames без отдельной настройки согласуют единицы и смысл одноимённых столбцов; разработчику обычно хватает проверить, что операция завершилась без исключения.