আরএম () দিয়ে একাধিক বস্তু সরান


86

আমার স্মৃতিশক্তি মাঝারি ফাইলগুলির একগুচ্ছ হয়ে পড়েছে (এগুলিকে টেম্প 1, টেম্প 2 ইত্যাদি বলে)। এরকম ছাড়া মেমরি থেকে তাদের সরিয়ে সম্ভব rm(temp1), rm(temp2)একটি সময়ে এক? আমি চেষ্টা করেছি rm(list(temp1, temp2, etc.)), কিন্তু কাজ করে বলে মনে হচ্ছে না।

উত্তর:


127

তালিকাটিকে একটি অক্ষর ভেক্টর করুন (নামগুলির একটি ভেক্টর নয়)

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

বা

rm(temp1, temp2)

4
স্মৃতিতে সমস্ত কিছু মুছে ফেলতে, আপনি বলতে পারেন: rm (list = ls ())
স্যাম

4
@ সাম rm(list = ls(all = TRUE))যদি আপনি নিশ্চিত হন যে আপনি সবকিছু পেতে চান।
Dason

4
এটা কি কাজ করে %>%? যেমনlist(...) %>% rm(list = .)
জিয়াগিয়াং

আপনি কি দয়া করে এটির সুবিধাটি ব্যাখ্যা করবেন list? আমার কাছে অপ্রয়োজনীয়ভাবে দ্বিতীয় বিকল্পটিতে কেবল টিএবি স্বতঃসম্পূর্ণ পরিবর্তনের পরিবর্তে সমস্ত ভেরিয়েবলের নাম টাইপ করা জটিল বলে মনে হচ্ছে।
laviex

112

অন্য একটি সমাধান rm(list=ls(pattern="temp")), প্যাটার্নের সাথে মেলে সমস্ত বস্তু সরান।


জোশ পলসন এখানে বর্ণিত (আমি কী করলাম জানতাম না ls(...), তবে এখন আমি অনুমান করি এটি ইউনিক্স বাশ ফাংশন ls এর মতো?) - ওফস, জোশ পলসন @ স্যাম দ্বারা বর্ণিত একটি নির্দিষ্ট জাত ব্যবহার করেছেনTo remove everything in the memory, you can say: rm(list = ls())
রেড মটর

এটি সূক্ষ্মভাবে কাজ করে তবে একটি ছোট বাগ থাকতে পারে ''বিসিটিএমপি' নামের কোনও বিষয় থাকলে তাও মুছে ফেলা হবে। 'টেম্প' দিয়ে শুরু হওয়া এবং 'এবিসটেম্প' রাখার জন্য কীভাবে আমি সেই জিনিসগুলি সরিয়ে ফেলব?
ব্যবহারকারী 3768495

8
আপনি কেবল আপনার প্যাটার্নে আরও মানদণ্ড যুক্ত করতে পারেন। আপনার উদাহরণস্বরূপ, pattern="^temp"কেবলমাত্র "টেম্প" দ্বারা পরিবর্তনশীল সূচনা হবে, সুতরাং ভেরিয়েবলটি নয় ABCtemp
অ্যালান

4
আরেকটি সম্ভাবনা উত্তর এখানে @BrodieG কর্তৃক প্রদত্ত হয় stackoverflow.com/questions/21677923/...
সবুজ diod

4

আপনি চেষ্টা করতে পারেন এমন আরও একটি প্রকারণ হ'ল (যদি @ মণেলের উত্তর প্রসারিত করা হয়) আপনার যদি অনেকগুলি টেম্পেক্স থাকে '।

এখানে "এন" টি উপস্থিত টেম্পের ভেরিয়েবলের সংখ্যা হতে পারে

rm(list = c(paste("temp",c(1:n),sep="")))

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)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.