Я настоятельно рекомендую другой подход. Не удаляйте частично объекты, используйте правильную область видимости. То есть не определяйте объекты в глобальной среде, которые там не нужно определять, определяйте их внутри функций или вместо local
областей.
Если пойти еще дальше, ваш functions.R
файл также не должен определять функции в глобальной среде. Вместо этого, как предлагается в комментарии, он должен определять их в выделенной среде, которую вы можете attach
, если это удобно. Это фактически то, что решают пакеты R. Если вы чувствуете, что пакеты R слишком тяжелы для вашей цели, я предлагаю вам использовать вместо этого мой механизм {modules} : он чисто реализует файловые модули кода.
Если вы используете область видимости в том виде, как она была задумана, вам не нужно вызывать rm
для временных переменных, и, следовательно, ваша проблема не возникнет.
Если вы действительно хотите получить чистую доску, перезапустите R и повторно запустите ваш скрипт: это единственный способ последовательно сбросить состояние сеанса R; все остальные способы являются хакерскими ошибками, поскольку они выполняют только частичную очистку.
Примечание о том, что вы написали:
При проверке функция удаляется, несмотря на то, что она начинается с точки.
Они не - они просто невидимы ; это то, что делает ведущая точка. Однако эта рекомендация также кажется мне плохой практикой: это ненужный взлом.