উত্তর:
এখানে একটি সাধারণ নির্মাণ এটি করা হবে যা ব্যবহার করে 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)
}
}
নিম্নলিখিতটি আপনার কনসোল থেকে সমস্ত বস্তু সরিয়ে ফেলবে
rm(list = ls())