Мое мнение, что это неправильный вопрос. Конструкция rm(list = ls(...))
- это просто неприятный вирус, распространяющийся по коду, скопированному между пользователями.
Какая потребность в этой конструкции?
- аккуратное рабочее пространство
- уменьшить использование памяти
- упростить сеть зависимостей (
rm
не поможет это)
Почему бы не разработчики R обеспечивают чистую рабочую область, чтобы начать с?Они делают это, он просто получает неправильное использование, а поведение Windows по умолчанию скрывает детали бесполезными способами.
Почему рабочее пространство не очищается при запуске R?
Когда R запускается, он всегда работает с «текущим каталогом», это похоже на «в папке», если вы запрашиваете «file1.iaf», вам не нужно явно указывать на «C: /temp/myfolderofiafs/file1.iaf».
В UNIX это просто место, где вы находитесь в том, когда вы набираете
R
и вы можете увидеть его непосредственно при вводе
pwd
В Windows, это же в командной строке (замените pwd на dir и найдите «Directory of ...»), но когда вы «дважды щелкните по ярлыку R», система сделает то же самое для вас, но там, где она запускается, управляется «Свойства» шоркут. Вы можете увидеть это, щелкнув правой кнопкой мыши на ярлыке, нажмите «Свойства» и посмотрите, что говорит поле «Начать». (Это может быть система подстановочные как% HOMEPATH% или что-то, но это, вероятно, означает "C:/Users/имя пользователя/Documents".)
R по умолчанию чтобы начать с одного из ваших папок, потому что это единственное место, где он может действительно знать, что имеет права делать вещи.
Я использую Windows 8, это все немного отличается в Windows 3.1, 95, 98, NT, CE, 2000, XP, Vista и 7, но охватывает все, что можно оставить в Google.
Посмотрите в том, что «Пуск в папке», скорее всего, вы не увидите файл с именем «.rdata», но это потому, что она скрыта. Запустите R и выполните следующий код, прежде чем делать что-либо еще:
list.files(all = TRUE)
Есть файл .Rdata? (Вы можете использовать «dir/a», чтобы увидеть его в командной строке, или «ls -a» в unix для этого же.)
При запуске R этот файл загружается по умолчанию, как если бы вы сделано следующее:
load(".Rdata")
Именно поэтому рабочее пространство «нуждается в очистке», но по-моему, вы должны удалить файл «.rdata» и избавить свой рабочий процесс неуклюжих писак.
Вы можете исправить это с R, сделайте следующее:
unlink(".Rdata")
и при выходе из R, выберите «нет», так что этот скрытый файл не получить повторно не создано еще раз. Если вы случайно создали его, выследите его и снова убейте.
Если вы действительно хотите, чтобы сохранить всю рабочую область, используйте:
save.image("myentireworkspaceorperhapssomesensiblefilenameforit.Rdata")
или просто несколько объектов из него:
save(keepme, keepme2, andme, file = "justsomeofmyclingyobjects.Rdata")
Вы можете увидеть скрытый файл «.rdata» в ОС Windows самостоятельно, установив View Properties для папки (это Windows 8, где я получаю ее через «View/Options» Change folder and search options »):
Выберите «Показать скрытые файлы, папки и диски». Я также сильно рекомендую вам разблокировать «Скрыть расширения для известных типов файлов», потому что расширение действительно является частью имени файла и скрывает его иногда просто сбивает с толку все. (Windows по умолчанию сделает реальное имя вашего файла «file.R.txt», если вы попытаетесь переименовать его из «file.txt» в «file.R» без этого набора).
В этом поле «Целевое» свойств ярлыка вы можете добавить такие аргументы, как «-no-restore» или «-no-restore-data».
Это также «исправить» конечные выше проблемы, но не в правильном направлении ИМО.
Эти аргументы доступны в командной строке с (на Windows):
Rgui --help
но вы должны будете использовать полный путь или иметь бен R в/* папки в пути для того, чтобы работать. См. ?Startup
для более полного обсуждения,
Возможно, хорошей идеей было бы научиться не сохранять рабочее пространство .Rdata в каталоге R, начинающемся с – mdsumner
. Я всегда меняю каталог на тот, где находится мой R-файл. Это то, что вы говорите, что я должен делать? –
@mdsumner, я ценю другое объяснение для [Очистка рабочего пространства в R] (http://stackoverflow.com/questions/20389821/clearing-workspace-in-r), однако мне нравится, как приведенное ниже решение позволяет избежать удаления функции объекта сам. –