Ответ 1
Вы найдете ответ, набрав ?rm
rm(data_1, data_2, data_3)
Я хотел бы удалить некоторые данные из рабочей области. Я знаю, что кнопка "Очистить все" удалит все данные. Однако я хотел бы удалить только определенные данные.
Например, у меня есть эти фреймы данных в разделе данных:
data
data_1
data_2
data_3
Я хотел бы удалить data_1
, data_2
и data_3
, оставив при этом data
.
Я попытался data_1 <- data_2 <- data_3 <- NULL
, который удаляет данные (я думаю), но все еще сохраняет их в рабочей области, поэтому это не совсем то, что я хотел бы сделать.
Вы найдете ответ, набрав ?rm
rm(data_1, data_2, data_3)
Полезный способ удалить весь набор именованных объектов:
rm(list = ls()[grep("^tmp", ls())])
тем самым удалив все объекты, имя которых начинается со строки "tmp".
Изменить: после комментария Gsee, используя аргумент pattern
:
rm(list = ls(pattern = "^tmp"))
Изменить: отвечая на комментарий Рафаэля, один из способов сохранить только подмножество объектов - это имя данных, которые вы хотите сохранить с определенным шаблоном. Например, если вы хотите удалить все объекты, имя которых не начинается с paper
, вы должны выполнить следующую команду:
rm(list = grep("^paper", ls(), value = TRUE, invert = TRUE))
Следующая команда выполнит
rm(list=ls(all=TRUE))
Используйте следующую команду
remove(list=c("data_1", "data_2", "data_3"))
Вы можете использовать функцию apropos
, которая используется для поиска объектов с использованием частичного имени.
rm(list = apropos("data_"))
Если вы просто хотите удалить одну из группы переменных, вы можете создать список и сохранить только нужную вам переменную. Функция rm может использоваться для удаления всех переменных, кроме "данных". Вот script:
0->data
1->data_1
2->data_2
3->data_3
#check variables in workspace
ls()
rm(list=setdiff(ls(), "data"))
#check remaining variables in workspace after deletion
ls()
#note: if you just use rm(list) then R will attempt to remove the "list" variable.
list=setdiff(ls(), "data")
rm(list)
ls()
paste0("data_",seq(1,3,1))
# makes multiple data.frame names with sequential number
rm(list=paste0("data_",seq(1,3,1))
# above code removes data_1~data_3
Если вы используете RStudio, пожалуйста, не используйте подход rm(list = ls())
! * Вместо этого вы должны быстро создавать свой рабочий процесс, используя ярлык Ctrl
+ Shift
+ F10
, чтобы перезапустить сеанс R. Это самый быстрый способ как нарезать текущий набор определяемых пользователем переменных, так и очистить загруженные пакеты, устройства и т.д. Воспроизводимость вашей работы заметно возрастет, приняв эту привычку.
См. эту отличную тему в сообществе Rstudio для (h/t @kierisi) для более подробного обсуждения (основной смысл что я уже сказал).
Я должен признать, что мои первые несколько лет кодирования R были представлены script после script, начиная с трюка rm
". Я пишу этот ответ в качестве совета для всех, кто может начать их R.
*, конечно, для этого есть законное применение - во многом как attach
, но начинающие пользователи будут намного лучше обслуживаться (IMO), пересекая этот мост позже.
Чтобы очистить все данные:
нажмите Misc>Remove all objects
.
Ваше добро.
Чтобы очистить консоль:
нажмите edit>Clear console
.
Нет необходимости в каком-либо коде.
В RStudio убедитесь, что вкладка Environment
находится в режиме Grid
(не List
).
Отметьте объект (ы), которые вы хотите удалить из среды.
Нажмите на значок метлы.