Rm () के साथ कई ऑब्जेक्ट निकालें


84

मेरी याददाश्त मध्यवर्ती फ़ाइलों के एक समूह से भरी हुई है (उन्हें temp1, temp2, आदि कहते हैं)। यह कर के बिना स्मृति से उन्हें हटाने के लिए संभव है rm(temp1), rm(temp2)एक समय में एक? मैंने कोशिश की rm(list(temp1, temp2, etc.)), लेकिन वह काम नहीं करता है।

जवाबों:


123

सूची को वर्ण वेक्टर बनाएं (नामों का वेक्टर नहीं)

rm(list = c('temp1','temp2'))

या

rm(temp1, temp2)

3
मेमोरी में सब कुछ हटाने के लिए, आप कह सकते हैं: rm (सूची = ls ())
सैम

5
@Sam rm(list = ls(all = TRUE))यदि आप सब कुछ प्राप्त करना सुनिश्चित करना चाहते हैं।
दसन

1
क्या यह काम करता है %>%? जैसेlist(...) %>% rm(list = .)
जियाजियांग

क्या आप बताएंगे कि इसका क्या फायदा है list? मुझे लगता है कि दूसरे विकल्प में सिर्फ TAB स्वतः पूर्ण के बजाय सभी चर नामों को टाइप करने के लिए अनावश्यक रूप से जटिल है।
लवीक्स

112

एक अन्य समाधान rm(list=ls(pattern="temp")), पैटर्न से मेल खाने वाली सभी वस्तुओं को हटा दें।


यहां जोश पॉलसन द्वारा वर्णित (मुझे नहीं पता था कि क्या ls(...)किया था, लेकिन अब मुझे लगता है कि यह यूनिक्स बैश फंक्शन एलएस की तरह है?) - व्हाट्स, जोश पॉलसन ने @Sam द्वारा वर्णित एक विशिष्ट विविधता का उपयोग कियाTo remove everything in the memory, you can say: rm(list = ls())
द रेड मटर

यह ठीक काम करता है, लेकिन इसमें एक छोटा सा बग हो सकता है। यदि 'एबीसीटीएमपी' नाम की कोई वस्तु है, तो उसे भी हटा दिया जाएगा। मैं केवल उन वस्तुओं को कैसे हटा सकता हूं जो 'अस्थायी' से शुरू होती हैं और 'एबीसीटीएमपी' रखती हैं?
user3768495

8
आप बस अपने पैटर्न में और कसौटी जोड़ सकते हैं। आपके उदाहरण के लिए, pattern="^temp""अस्थायी" द्वारा केवल चर शुरुआत को पकड़ेंगे, इसलिए चर नहीं ABCtemp
एलन

1
एक अन्य संभावना @BrodieG द्वारा यहां दिए गए उत्तर stackoverflow.com/questions/21677923/…
हरी

3

या नियमित अभिव्यक्ति का उपयोग कर

"rmlike" <- function(...) {
  names <- sapply(
    match.call(expand.dots = FALSE)$..., as.character)
  names = paste(names,collapse="|")
  Vars <- ls(1)
  r <- Vars[grep(paste("^(",names,").*",sep=""),Vars)]
  rm(list=r,pos=1)
}

rmlike(temp)

3

यदि आप कई temp'x 'का उपयोग कर रहे हैं, तो एक और भिन्नता आप कोशिश कर सकते हैं (@ मेल के जवाब का विस्तार)।

यहाँ "n" टेम्प वर्बल्स की संख्या मौजूद हो सकती है

rm(list = c(paste("temp",c(1:n),sep="")))
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.