जवाबों:
यहाँ एक सरल निर्माण है जो इसे करेगा, का उपयोग करके setdiff
:
rm(list=setdiff(ls(), "x"))
और एक पूर्ण उदाहरण। इसे अपने जोखिम पर चलाएं - यह छोड़कर सभी चर को हटा देगा x
:
x <- 1
y <- 2
z <- 3
ls()
[1] "x" "y" "z"
rm(list=setdiff(ls(), "x"))
ls()
[1] "x"
पैकेज keep
से फ़ंक्शन का उपयोग करना gdata
काफी सुविधाजनक है।
> ls()
[1] "a" "b" "c"
library(gdata)
> keep(a) #shows you which variables will be removed
[1] "b" "c"
> keep(a, sure = TRUE) # setting sure to TRUE removes variables b and c
> ls()
[1] "a"
मुझे लगता है कि एक और विकल्प RStudio में कार्यक्षेत्र खोलना है और फिर सूची को पर्यावरण के शीर्ष दाईं ओर ग्रिड में बदलना है (नीचे छवि)। फिर उन वस्तुओं पर टिक करें जिन्हें आप साफ़ करना चाहते हैं और अंत में स्पष्ट पर क्लिक करें।
मैंने बस इसी तरह के लेकिन थोड़े अलग सवाल के जवाब के लिए कई घंटे शिकार करने में बिताए - मुझे एक मुट्ठी भर वैक्टरों को छोड़कर आर (कार्यों सहित) में सभी वस्तुओं को हटाने में सक्षम होना चाहिए।
ऐसा करने का एक तरीका:
rm(list=ls()[! ls() %in% c("a","c")])
जहां मैं जिन वैक्टर को रखना चाहता हूं, उन्हें 'ए' और 'सी' नाम दिया गया है।
उम्मीद है कि यह किसी को भी एक ही समाधान के लिए खोज करने में मदद करता है!
rm(list=setdiff(ls(), c("a", "c")))
, है ना? देखिए @ एंड्री का जवाब।
उन सभी वस्तुओं को रखने के लिए जिनके नाम एक पैटर्न से मेल खाते हैं, आप उपयोग कर सकते हैं grep
, जैसे:
to.remove <- ls()
to.remove <- c(to.remove[!grepl("^obj", to.remove)], "to.remove")
rm(list=to.remove)
v
उस ऑब्जेक्ट के नाम से बदलें जिसे आप रखना चाहते हैं
rm(list=(ls()[ls()!="v"]))
हैट-टिप: http://r.789695.n4.nabble.com/Removing-objects-and-clearing-memory-tp3445763p3445865.html
इस का लाभ लेता है ls()
के pattern
विकल्प, के मामले में आप एक ही पैटर्न है कि आप रखने के लिए नहीं करना चाहते हैं के साथ वस्तुओं का एक बहुत कुछ है:
> foo1 <- "junk"; foo2 <- "rubbish"; foo3 <- "trash"; x <- "gold"
> ls()
[1] "foo1" "foo2" "foo3" "x"
> # Let's check first what we want to remove
> ls(pattern = "foo")
[1] "foo1" "foo2" "foo3"
> rm(list = ls(pattern = "foo"))
> ls()
[1] "x"
rm
फ़ंक्शन को हमेशा देखभाल के साथ उपयोग किया जाना चाहिए (शेल में अधिक तो!)। अपने प्रश्न के उत्तर के लिए मेरा संपादन देखें।
require(gdata)
keep(object_1,...,object_n,sure=TRUE)
ls()
चलो अलग तरीके से सोचते हैं, क्या होगा अगर हम एक समूह को हटाना चाहते हैं? इसे इस्तेमाल करे,
rm(list=ls()[grep("xxx",ls())])
मुझे व्यक्तिगत रूप से बहुत सारे टेबल पसंद नहीं हैं, मेरी स्क्रीन पर चर, फिर भी मैं उनका उपयोग करने से बच नहीं सकता। इसलिए मैं "xxx" से शुरू होने वाली अस्थायी चीजों को नाम देता हूं, इसलिए मैं इसका उपयोग करने के बाद हटा सकता हूं।
एक फ़ंक्शन के भीतर, सभी ऑब्जेक्ट्स को छोड़कर .GlobalEnv फ़ंक्शन को छोड़कर
initialize <- function(country.name) {
if (length(setdiff(ls(pos = .GlobalEnv), "initialize")) > 0) {
rm(list=setdiff(ls(pos = .GlobalEnv), "initialize"), pos = .GlobalEnv)
}
}
पर्यावरण से df को छोड़कर आप हर वस्तु को हटाना चाहते हैं:
rm(list = ls(pattern="[^df]"))
निम्नलिखित आपके कंसोल से सभी ऑब्जेक्ट को निकाल देगा
rm(list = ls())