আমি একটি কমান্ডের আউটপুট দমন করতে চাইছি (এই ক্ষেত্রে, applyফাংশন)।
এটি ব্যবহার না করে এটি করা সম্ভব sink()? আমি নীচে বর্ণিত সমাধানটি পেয়েছি, তবে এটি সম্ভব হলে এক লাইনে এটি করতে চাই।
আমি একটি কমান্ডের আউটপুট দমন করতে চাইছি (এই ক্ষেত্রে, applyফাংশন)।
এটি ব্যবহার না করে এটি করা সম্ভব sink()? আমি নীচে বর্ণিত সমাধানটি পেয়েছি, তবে এটি সম্ভব হলে এক লাইনে এটি করতে চাই।
capture.output। বা *_plyপাতলা প্যাকেজ থেকে ব্যবহার করুন ।
lapplyপরামর্শ- যদি আপনি সত্যিই কোনও প্রয়োগ ফাংশন সম্পাদন করার চেষ্টা করছেন, যেমন , আউটপুট প্রিন্ট না করেই তার plyrপ্যাকেজ থেকে 'l_ply` সম্ভবত সবচেয়ে উপযুক্ত পছন্দ।
উত্তর:
আপনি কেন এটি ছাড়া এটি করতে চান তা স্পষ্ট নয় sink, তবে আপনি ফাংশনটিতে কোনও আদেশ সজ্জিত করতে পারেন invisible()এবং এটি আউটপুটকে দমন করবে। এই ক্ষেত্রে:
1:10 # prints output
invisible(1:10) # hides it
অন্যথায়, আপনি সর্বদা সেমিকোলন এবং বন্ধনীগুলির সাথে জিনিসগুলিকে এক লাইনে একত্রিত করতে পারেন:
{ sink("/dev/null"); ....; sink(); }
invisible()কেবলমাত্র একটি অভিব্যক্তিটির মুদ্রণ দমন করে, এটি sink()ওয়ান-লাইনার নয়।
applyএটি প্রশ্ন অনুসারে: এর প্রত্যাবর্তনকে দমন করে invisible(apply(matrix(1:10), 1, as.numeric))।
{ sink("/dev/null"); ....; sink(); }আমি স্পষ্টতই পছন্দ করব capture.output, capture.outputঠিক যেমন কার্যকরভাবে উপরেরটি ঠিক যেমন করে তোলে ঠিক তার চেয়ে অনেক বেশি ভাল (উত্সটি দেখুন, এটি উপরের ফ্যাশনের মতো ডুবে ডাকছে, পাশাপাশি এর চারপাশে কিছু সুন্দর জিনিস)।
idwউইন্ডোজ অধীনে ফাংশন কাজ করে না । আমি মনে করি সেরা সমাধানটি ব্যবহার করছেsink
capture.output()ফাংশনটি ব্যবহার করুন । এটি এক-অফের মতো খুব বেশি কাজ করে sink()এবং এর বিপরীতে invisible(), এটি কেবল বার্তা মুদ্রণের চেয়ে আরও দমন করতে পারে। /dev/nullইউনিক্স বা NULউইন্ডোতে ফাইল আর্গুমেন্ট সেট করুন । উদাহরণস্বরূপ, ডার্কের নোটটি বিবেচনা করুন:
> invisible(cat("Hi\n"))
Hi
> capture.output( cat("Hi\n"), file='NUL')
>
capture.output(x <- log(2))এবং তারপরে xএর মান রয়েছে log(2)...
নীচের ফাংশনটি আপনি যা করতে চান তা করা উচিত:
hush=function(code){
sink("NUL") # use /dev/null in UNIX
tmp = code
sink()
return(tmp)
}
উদাহরণস্বরূপ এখানে ফাংশন সহ:
foo=function(){
print("BAR!")
return(42)
}
চলমান
x = hush(foo())
42 এ x নির্ধারণ করবে কিন্তু "বার!" প্রিন্ট করবে না থামাতে
ইউনিক্স ওএসের চেয়ে নোট আপনাকে "এনএইউএল" "" / দেব / নাল "দিয়ে প্রতিস্থাপন করতে হবে
একটি উত্তরে হ্যাডলির মন্তব্য করা (এটি আরও ভালভাবে দৃশ্যমান করার আশা করি)। plyrপ্যাকেজ ব্যবহারের সাথে মুদ্রণ ছাড়াই পরিবারের প্রয়োগ প্রয়োগ সম্ভব
x <- 1:2
lapply(x, function(x) x + 1)
#> [[1]]
#> [1] 2
#>
#> [[2]]
#> [1] 3
plyr::l_ply(x, function(x) x + 1)
2020-05-19 তারিখে ডিপেক্স প্যাকেজ দ্বারা নির্মিত (v0.3.0)
invisible(cat("Dataset: ", dataset, fill = TRUE))
invisible(cat(" Width: " ,width, fill = TRUE))
invisible(cat(" Bin1: " ,bin1interval, fill = TRUE))
invisible(cat(" Bin2: " ,bin2interval, fill = TRUE))
invisible(cat(" Bin3: " ,bin3interval, fill = TRUE))
লাইনের শেষে বা পরের লাইনে NULL ছাড়াই আউটপুট উত্পাদন করে
Dataset: 17 19 26 29 31 32 34 45 47 51 52 59 60 62 63
Width: 15.33333
Bin1: 17 32.33333
Bin2: 32.33333 47.66667
Bin3: 47.66667 63