Обновлено 01.03.2012 Автор: Administrator
Некоторые полезные функции, позволяющие облегчить работу с кодом. Более общие вещи написаны здесь .
Основная парадигма - передавать параметры в функцию по значению, т.е. аргументы функции внутри нее не редактируются. Исключения (pass by reference) - environments .
удобно использовать точку как разделитель в имени переменных
ex: car.data, car.pca, car.means – сразу понятно что и где
Для разделения слов в функциях – использовать “_”. Тогда сразу понятно где что.
getAnywhere() – поиск исходного кода функции из загруженного namespace
assignInNamespace() – замещение кода функции из пакета. Удобно для модификации кода пакетов
fix() - может быть вызвана с использованием имени функции в качестве аргумента. При этом можно отредактировать текст функции из пакета загруженного в память. При этом на диск нечего не записывается, т.е. пакет не изменяется
invisible() возвращает результат функции, но не печатает его если результат функции ничему не присваивается (поведение по умолчанию)
eval(parse(text=”tmp=5”)) вычислить выражение R заданное в виде строки
dput() – записать в файл представление объекта в виде R-кода
Избегать перехода на новую строку между закрывающей скобкой } и 'else'. Часто R думает что выражение уже закончилось и не распознает часть когда условие не выполнено.
Т.е. избегать:
if(some_expr) { method1(); }
else { method2(); }
Вместо этого писать
if(some_expr) { method1();
} else { method2(); }
Выглядит ужасно, но ничего не поделаешь.
on.exit() – выполнить выражение, когда текущая функция завершилась (нормально или аварийно). Удобно для восстановления измененных параметров по умолчанию, например par(), или других clean-up операций.
detach(package:grid) – выгрузить пакет из памяти
< Предыдущая | Следующая > |
---|