При работе с именованными векторами, такими как
vec <- c(a = 1, b = 2)
, я часто сталкиваюсь с ошибками, когда пишу vec$a
, когда мне нужно написать vec["a"]
или vec[["a"]]
для доступа к соответствующему значению с и безимя соответственно.
Я думаю, vec$a
быть ошибкой нелогично, поскольку $
обычно извлекает именованные вещи. Это чувство даже поддерживается, например, в ?Extract
, где пример использования x$name
- разве это не идеально подходит для с именем вектора?
Это заставило меня задуматься овозможность перегрузки оператора $
для работы с именованными векторами. Однако я не очень опытен с перегрузкой операторов в R, и я понимаю (например, из ответов здесь ), что рекомендуется соблюдать осторожность при перегрузке основных операторов.
Мои взаимосвязанные вопросы: Есть ли причина, по которой я не должен перегружать $
, как описано , которую я не понимаю? То есть есть (в некотором неопределенном смысле) "хорошая" причина, почему это не значение по умолчанию в R ? Если нет, как я могу разумно сделать это ?
Я понимаю, что на практике это, вероятно, плохая идея, хотя бы по причинам переносимости, но мне все еще любопытно.