Общие функции, которые не работают так, как ожидалось с magrittr трубы? - PullRequest
0 голосов
/ 26 февраля 2020

В некоторых случаях труба magrittr (%>%) ведет себя не совсем так, как можно было ожидать, и поэтому для отладки, генерации представления, обсуждения и, в конечном итоге, рефакторинга требуется немного времени.

Например

Вопрос

В интересах упреждающего обучения, существует ли какая-то компиляция известных base (и, возможно, аккуратных) R-функций, с которыми труба не ведет себя, как можно ожидать?

Текущие решения

Хотя эти источники несколько несопоставимы.

Есть ли способ создать список, или, возможно, он поддерживается где-то, возможно, в документации, на github или где-то еще, чтобы его можно было периодически просматривать?

1 Ответ

1 голос
/ 26 февраля 2020

Нет способа автоматически создать такой список, поскольку вам необходимо знать семантику функции функции, чтобы знать, почему (и, следовательно, будет ли она) работать в конвейере.

Как значение c, любая функция, которая принимает параметр envir, установленный по умолчанию (как в случае ls, бит также get, exists , et c.) странно будет вести себя с каналами.

Тем не менее, если вы понимаете, как оценка функций работает в R, для большинства функций обычно довольно очевидно, будут ли они работать. Поэтому я предлагаю ознакомиться с моделью оценки R. В частности, прочитайте соответствующие главы в Хедли Уикхема * Advanced R :

И, потенциально, части

Если честно, это много материала. Но хорошее понимание того, как оценка функций и область действия (среды) работают в R, в любом случае крайне важно для solid понимания R. Метапрограммирование является более продвинутым, и более важно знать о его существовании, чем сразу понимать его solid.

...