मैं कार्यक्षेत्र से केवल कुछ विशिष्ट वस्तुओं को कैसे साफ़ करूं?


161

मैं कार्यक्षेत्र से कुछ डेटा निकालना चाहूंगा। मुझे पता है "Clear All" बटन सभी डेटा को हटा देगा। हालाँकि, मैं कुछ निश्चित आंकड़े निकालना चाहूंगा।

उदाहरण के लिए, मेरे पास डेटा अनुभाग में ये डेटा फ़्रेम हैं:

data
data_1
data_2
data_3

मैं रखना चाहूंगा data_1, data_2और data_3, रखते हुए data

मैंने कोशिश की data_1 <- data_2 <- data_3 <- NULL, जो डेटा को हटा देता है (मुझे लगता है), लेकिन अभी भी इसे कार्यक्षेत्र क्षेत्र में रखता है, इसलिए यह पूरी तरह से नहीं है कि मैं क्या करना चाहूंगा।

जवाबों:


247

आपको उत्तर लिखकर मिल जाएगा ?rm

rm(data_1, data_2, data_3)

44
उन सभी चरों को हटाने के लिए जिनका आप उपयोग कर सकते हैं rm(list=ls())
larkee

1
लेकिन आप GUI के साथ कमांड लाइन के बिना कैसे कर सकते हैं? क्रांति की तरह आर
स्कैन

1
क्या होगा अगर मैं अक्षर A से शुरू होने वाले नामों के साथ सभी चर निकालना चाहता हूं, तो 'A001', 'A002' .... 'A999' कहें। मैं इतने सारे चर नाम लिखना नहीं चाहता। धन्यवाद!
user3768495

2
@ Mbask के उत्तर का प्रयोग करें (बस नीचे): rm(list = ls()[grep("A", ls())])
पॉप

74

नामित-समान वस्तुओं के पूरे सेट को निकालने का एक उपयोगी तरीका:

rm(list = ls()[grep("^tmp", ls())])

इस प्रकार उन सभी वस्तुओं को हटा दिया जाता है जिनका नाम स्ट्रिंग "tmp" से शुरू होता है।

संपादित करें: Gsee की टिप्पणी के बाद, patternतर्क का उपयोग करना :

rm(list = ls(pattern = "^tmp"))

संपादित करें: राफेल टिप्पणी का उत्तर देते हुए, वस्तुओं के केवल सबसेट को बनाए रखने का एक तरीका यह है कि जिस डेटा को आप किसी विशिष्ट पैटर्न के साथ बनाए रखना चाहते हैं उसे नाम दें। उदाहरण के लिए यदि आप उन सभी वस्तुओं को हटाना चाहते हैं, जिनका नाम paperआपके साथ शुरू नहीं होता है, तो निम्नलिखित कमांड जारी करेंगे:

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

7
lsएक patternतर्क को स्वीकार करता है , इसलिए आप इसे आसान कर सकते हैंrm(list=ls(pattern="^tmp"))
GSee

1
अलग से, बाहर की जाँच जब आप का उपयोग क्या होता है value=TRUEके साथ grep... कुछ टाइपिंग बचा सकता है।
13

नमस्ते, क्या कुछ डेटा रखने और दूसरों को निकालने के लिए एक तरीका है (एक बड़ी राशि)? चीयर्स
राफेल

1
नमस्ते! और मैं अपने आर वातावरण में दो अलग-अलग पैटर्न कैसे रख सकता हूं? मैंने "rm (सूची = grep (" ^ पेपर "|" ObjectExample ", ls (), value = TRUE, invert = TRUE)) की कोशिश की। क्या कोई जानता है?
डेकेके

1
आपको अपनी नियमित अभिव्यक्ति को patternतर्क में शामिल करना चाहिए grep:rm(list = grep("^paper|ObjectExample", ls(), value = TRUE, invert = TRUE))
एमबी

15

निम्नलिखित आदेश करेंगे

rm(list=ls(all=TRUE))

2
यह, कार्यक्षेत्र से सब कुछ हटा देगा ही नहीं data1, data2है, और data3(यानी dataभी निकाल दिया जाएगा)। जो ठीक है अगर आप चाहते हैं ...
फिल

2
और क्या होगा यदि कोई केवल डेटा, कार्यों, मूल्यों या अन्य वस्तुओं को, वैश्विक वातावरण में, हटाना चाहता है?
निकोस एलेक्जेंड्रिस


6

आप उस aproposफ़ंक्शन का उपयोग कर सकते हैं जिसका उपयोग आंशिक नाम का उपयोग करके वस्तुओं को खोजने के लिए किया जाता है।

rm(list = apropos("data_"))

3

यदि आप केवल चर के एक समूह को निकालना चाहते हैं, तो आप एक सूची बना सकते हैं और बस उस चर को रख सकते हैं जिसकी आपको आवश्यकता है। Rm फ़ंक्शन का उपयोग "डेटा" के अलावा सभी चर को हटाने के लिए किया जा सकता है। यहाँ स्क्रिप्ट है:

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()

3

यदि आप RStudio का उपयोग कर रहे हैं, तो कृपया दृष्टिकोण का उपयोग न करने पर विचार करें ! *rm(list = ls()) इसके बजाय, आपको अपने R सत्र को पुनरारंभ करने के लिए अक्सर Ctrl+ Shift+ F10शॉर्टकट को नियोजित करने के आसपास अपने वर्कफ़्लो का निर्माण करना चाहिए । यह उपयोगकर्ता-परिभाषित चर के वर्तमान सेट को एनक्यूई करने का सबसे तेज़ तरीका है और लोड किए गए पैकेजों, उपकरणों आदि को साफ़ करने के लिए। इस आदत को अपनाने से आपके काम का पुनरुत्पादन स्पष्ट रूप से बढ़ेगा।

देख अधिक गहन चर्चा के लिए Rstudio समुदाय (h / t @kierisi) पर इस उत्कृष्ट सूत्र को (जो मैंने पहले ही बता दिया है, उसके द्वारा मुख्य पकड़ लिया गया है)।

मुझे अपने पहले कुछ वर्षों के आर कोडिंग को स्क्रिप्ट को rm"ट्रिक" से शुरू करने के बाद चित्रित करना चाहिए - मैं यह उत्तर किसी और को सलाह के रूप में लिख रहा हूं जो अपने आर करियर की शुरुआत कर सकता है।

* बेशक इसके लिए वैध उपयोग हैं - बहुत पसंद है attach- लेकिन शुरुआत में उपयोगकर्ताओं को बाद में एक तारीख में उस पुल को पार करने में बेहतर (आईएमओ) सेवा मिलेगी।


3
  1. RStudio में, सुनिश्चित करें कि Environmentटैब Grid(नहीं List) मोड में है।

  2. ऑब्जेक्ट (टोंस) को आप पर्यावरण से हटाना चाहते हैं।

  3. झाड़ू आइकन पर क्लिक करें।


2
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

1

सभी डेटा साफ़ करने के लिए:

पर क्लिक करें Misc>Remove all objects

आपका जाना अच्छा है।

कंसोल को खाली करने के लिए:

पर क्लिक करें edit>Clear console

किसी भी कोड के लिए कोई ज़रूरत नहीं है।


1
हालांकि मुझे करना पड़ा Session> Clear Workspace...
पीटर के
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.