Как удалить все объекты из моей среды R, кроме двух, которые имеют разные имена - PullRequest
1 голос
/ 01 ноября 2019

Иногда в моей среде R десятки объектов, и я хочу оставить только один, два или три из них. В качестве примера:

df1   df8    dataframeX
df2   df9    ObjectY
df3   df10   df15
df4   df11   df16
df5   df12   dataframeZ
df6   df13
df7   df14

Я нашел этот полезный скрипт для сохранения одного или нескольких объектов, которые повторяют один и тот же шаблон имени:

rm(list = grep("^dataframe", ls(), value = TRUE, invert = TRUE))

dataframeX
dataframeZ

Однако я не знаю, как изменитьэто сохранить в моей среде R объекты, которые следуют шаблонам разных имен. Например, как я могу сохранить объекты dataframeX, dataframeZ и ObjectY?.

Кто-нибудь знает, как создать сценарий, который позволяет мне легко это делать?

Заранее спасибо

1 Ответ

1 голос
/ 01 ноября 2019

Вы можете использовать

rm(list = grep("^(?:dataframe|Object)", ls(), value = TRUE, invert = TRUE))

См. Демоверсию regex

Подробности

  • ^- начало строки
  • (?: - начало группы без захвата:
    • dataframe - dataframe строка
    • | - или
    • Object - строка Object
  • ) - конец группировки.

Группа используется для проверки^ применяется к обеим альтернативам, так что их искали только в начале строки.

...