%>% ফাংশনটি আর এর অর্থ কী?


119

আমি dplyr এবং রোভেস্টের%>% মতো কিছু প্যাকেজে (শতাংশের চেয়ে শতাংশের বেশি) ফাংশনের ব্যবহার দেখেছি । এর মানে কী? এটি কি আর-তে ক্লোজার ব্লকগুলি লেখার উপায়?


10
বা দেখুন?'%>%'
jbaums

6
ধন্যবাদ ডেভিড! jbaums, দুর্ভাগ্যক্রমে এই সম্পর্কে কোন ডক আছে। ? '%>%' পুনরায় "" নির্দিষ্ট প্যাকেজ এবং লাইব্রেরিতে '%>%' এর জন্য কোনও ডকুমেন্টেশন নেই "
আলফাকিনি

6
@alf। আপনি প্রয়োজন library(magrittr)বা library(dplyr)প্রথম তারপর চালানো ?'%>%', যদিও আমার লিংক আরো informaiton প্রদান করে
ডেভিড Arenburg


উত্তর:


141

% ...% অপারেটর

%>%এর কোনও অন্তর্নিহিত অর্থ নেই তবে ব্যবহারকারী (বা একটি প্যাকেজ) ফর্মটির অপারেটরদের যে %whatever%কোনও উপায়ে পছন্দ করতে সংজ্ঞায়িত করতে মুক্ত । উদাহরণস্বরূপ, এই ফাংশনটি একটি কমা এবং স্থানের পরে তার বাম যুক্তি সমন্বিত একটি স্ট্রিং ফিরিয়ে দেবে এবং তারপরে এটি সঠিক যুক্তিযুক্ত।

"%,%" <- function(x, y) paste0(x, ", ", y)

# test run

"Hello" %,% "World"
## [1] "Hello, World"

আর এর বেসটি সরবরাহ করে %*%(ম্যাট্রিক্স মাল্টিপ্লিকেশন), %/%(পূর্ণসংখ্যা বিভাগ), %in%(কি এইচএইচএসের একটি উপাদান?), %o%(বাহ্যিক পণ্য) এবং %x%(ক্রোনেকার পণ্য) সরবরাহ করে। %%এই বিভাগে পড়ে কি না তা পরিষ্কার নয় তবে এটি মডুলোর প্রতিনিধিত্ব করে।

আরপ প্যাকেজটি এক্সপ্যাম করে, একটি ম্যাট্রিক্স পাওয়ার অপারেটরের সংজ্ঞা দেয় %^%। উদাহরণস্বরূপ আর-তে ম্যাট্রিক্স শক্তি দেখুন ।

অপারেটরগুলি অপারেটর আর প্যাকেজ বিপুল সংখ্যক অপারেটরকে সংজ্ঞায়িত করেছে যেমন %!in%(না হিসাবে %in%)। Http://cran.r-project.org/web/packages/operators/operators.pdf দেখুন

পাইপ

ম্যাজিট্র্ট ম্যাজিট্রেটর ক্ষেত্রে %>%আর প্যাকেজটি ম্যাজিট্র্ট উইগনেটে আলোচিত হিসাবে এটি সংজ্ঞায়িত করেছে। Http://cran.r-project.org/web/packages/magrittr/vignettes/magrittr.html দেখুন

Magittr এছাড়াও অন্যান্য অন্যান্য অপারেটর একটি সংজ্ঞা দেওয়া হয়েছে। পূর্বে লিংক যা আলোচনা করা হয়েছে অতিরিক্ত পাইপ অপারেটর বিভাগটি দেখুন %T>%, %<>%এবং %$%এবং http://cran.r-project.org/web/packages/magrittr/magrittr.pdf এমনকি আরো বিস্তারিত জানার জন্য।

dplyr dplyr আর প্যাকেজটি %.%অপারেটর সংজ্ঞায়িত করতে ব্যবহৃত যা অনুরূপ; যাইহোক, এটি অবহেলা করা হয়েছে এবং dplyr এখন ব্যবহারকারীদের %>%dplyr যা ম্যাজিট্রিট থেকে আমদানি করে এবং dplyr ব্যবহারকারীর জন্য উপলব্ধ করে তা ব্যবহার করার পরামর্শ দেয়। ডেভিড অ্যারেনবুর্গ মন্তব্যে যেমন উল্লেখ করেছেন এই এসও প্রশ্নটি এর মধ্যে ম্যাজিস্ট্রেটের পার্থক্যগুলি নিয়ে আলোচনা করে %>%: %।% (ডিপিপ্লায়ার) এবং%>% (ম্যাজিটার) মধ্যে পার্থক্য

পাইপআর আর প্যাকেজ, পাইপআর একটি %>>%অপারেটরকে সংজ্ঞায়িত করে যা ম্যাজিট্রির%>% এর অনুরূপ এবং এর বিকল্প হিসাবে ব্যবহার করা যেতে পারে। Http://renkun.me/pipeR-tutorial/ দেখুন

পাইপআর প্যাকেজ এছাড়াও অন্যান্য অন্যান্য অপারেটরগুলির একটি সংখ্যাও সংজ্ঞায়িত করেছে। দেখুন: http://cran.r-project.org/web/packages/pipeR/pipeR.pdf

পোস্টলোগিক পোস্টলোগিক প্যাকেজ সংজ্ঞায়িত %if%এবং %unless%অপারেটরগুলি।

মোড়ক আর প্যাকেজ, মোড়ক, একটি ডট পাইপ সংজ্ঞায়িত করে %.>%যে এটি একটি স্পষ্ট সংস্করণ %>%যে এটি আর্গুমেন্টের অন্তর্নিহিত সন্নিবেশ না করে কেবল ডানদিকে ডট এর সুস্পষ্ট ব্যবহারের পরিবর্তে। এটি এর অন্য বিকল্প হিসাবে বিবেচনা করা যেতে পারে %>%Https://winvector.github.io/wrapr/articles/dot_pipe.html দেখুন

উদ্ভট নল । এটি আসলে পাইপ নয় বরং পাইপ ব্যবহার না করে পাইপের অনুরূপ উপায়ে কাজ করার জন্য কিছু চালাক বেস সিনট্যাক্স। এটি http://www.win-vector.com/blog/2017/01/ using- the-bizarro- pipe- to- debug- magrittr- piplines-in- r/ এ আলোচনা করা হয়েছে ধারণাটি লেখার পরিবর্তে:

1:8 %>% sum %>% sqrt
## [1] 6

এক নিম্নলিখিত লিখেছেন। এক্ষেত্রে আমরা স্পষ্টভাবে বিন্দুটি যুক্ত করার পরিবর্তে বিন্দুটি ব্যবহার করি এবং পাইপলাইনের প্রতিটি উপাদানকে ভেরিয়েবলের একটি অ্যাসাইনমেন্ট দিয়ে শেষ করি যার নাম বিন্দু ( .)। আমরা সেমিকোলন দিয়ে তা অনুসরণ করি।

1:8 ->.; sum(.) ->.; sqrt(.)
## [1] 6

এক্সপেম প্যাকেজ এবং শীর্ষে সরলীকরণের উদাহরণ সম্পর্কিত তথ্য আপডেট করুন। পোস্টলোগিক প্যাকেজ যুক্ত হয়েছে।


1
আমি আরও দেখছি:% <>%,% টি>%,% $%, তারা কী করে? rpackages.ianhowson.com/cran/magrittr/man/pipe.html
প্লুক করুন

আর এর মধ্যে থেকে ম্যাজিট্রটার লোড করার পরে: ?"%<>%"ইত্যাদি ব্যবহারের সাহায্য নিন
জি

17

জি.গ্রোথেনডিকের দেওয়া লিঙ্কটি পড়ার পরে আমার বুঝতে পারা যায় যে%>% অপারেটর যা পাইপ ফাংশন করে। এটি পাঠযোগ্যতা এবং উত্পাদনশীলতায় সহায়তা করে কারণ একাধিক ফাংশন নেস্ট করার সময় পিছনের দিকে যাওয়ার চেয়ে এই পাইপগুলির মাধ্যমে একাধিক ফাংশনের প্রবাহকে অনুসরণ করা সহজ।


আপনি উল্লিখিত সুবিধাগুলি এখানে কোড উদাহরণ দিয়ে প্রদর্শিত হয় ।
ক্রিস্টোফার স্টিফান

9

%>%ইউনিক্সের পাইপের অনুরূপ। উদাহরণস্বরূপ, ইন

a <- combined_data_set %>% group_by(Outlet_Identifier) %>% tally()

আউটপুট combined_data_setমধ্যে যেতে হবে group_byএবং তার আউটপুট মধ্যে যেতে হবে tally, তারপর চূড়ান্ত আউটপুট নির্ধারিত হয় a

এটি আপনাকে ভেরিয়েবলগুলি তৈরি না করে এবং মধ্যবর্তী মানগুলি সংরক্ষণ না করে সিরিজে ফাংশনগুলি ব্যবহার করার সহজ এবং সহজ উপায় দেয়।


-1

আর প্যাকেজগুলি dplyr এবং sf আর প্যাকেজ ম্যাজিস্ট্রিট থেকে অপারেটর%>% আমদানি করে।

নিম্নলিখিত কমান্ডটি ব্যবহার করে সহায়তা পাওয়া যায়:

?'%>%'

অবশ্যই প্যাকেজটি আগে ব্যবহার করে লোড করা আবশ্যক

library(sf)

ম্যাজিট্রিটার ফরোয়ার্ড-পাইপ অপারেটরের ডকুমেন্টেশন একটি ভাল উদাহরণ দেয়: যখন ফাংশনগুলিতে কেবল একটি যুক্তি প্রয়োজন হয়, x%>% f চ (x) এর সমান


1
দেখে মনে হচ্ছে এটি ইতিমধ্যে স্ট্যাকওভারফ্লো . com/a/27129032/570918-এ ভালভাবে ব্যাখ্যা করা আছে ।
মার্ভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.