আর প্রোগ্রামিং ল্যাঙ্গুয়েজে ~ (টিলডে) ব্যবহার


187

নিচের কমান্ডটি রিগ্রেশন মডেলিং সম্পর্কে একটি টিউটোরিয়ালটিতে দেখেছি:

myFormula <- Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width

এই আদেশটি হুবহু কী করবে এবং কমান্ডে ~(টিল্ড) ভূমিকা কী ?


টিউটোরিয়ালের লিঙ্কটি ভাগ করে নিতে যত্নশীল? আকর্ষণীয় মনে হচ্ছে।
— চিজাস

1
@ চিজিস ... আমি কেস স্টাডি নিয়ে ই-বুক ডেটা মাইনিংয়ের মধ্য দিয়ে যাচ্ছিলাম ... সেখানে আপনি এরকম আরও অনেক আকর্ষণীয় উদাহরণ খুঁজে পেতে পারেন।
— অঙ্কিতা

উত্তর:


193

ডানদিকে জিনিস <-একটি formulaবস্তু। এটি প্রায়শই একটি পরিসংখ্যানগত মডেল বোঝাতে ব্যবহৃত হয়, যেখানে বামদিকে জিনিসটি ~প্রতিক্রিয়া এবং ডানদিকে ডান দিকের জিনিসগুলি ~ব্যাখ্যাযোগ্য পরিবর্তনশীল। সুতরাং ইংরেজিতে আপনি "স্পেসিগুলি সেপাল দৈর্ঘ্য, সেপাল প্রস্থ, পেটাল দৈর্ঘ্য এবং পেটাল প্রস্থের উপর নির্ভর করে" এর মতো কিছু বলতে চাইবেন ।

এই myFormula <-লাইনের অংশটি সূচিত বলে একটি অবজেক্টে সংরক্ষণ করে myFormulaযাতে আপনি এটি আপনার আর কোডের অন্যান্য অংশে ব্যবহার করতে পারেন।


আর-তে সূত্রের অন্যান্য সাধারণ ব্যবহার

latticeপ্যাকেজ তাদের ব্যবহার করার জন্য চক্রান্ত করতে ভেরিয়েবল উল্লেখ । প্যাকেজ তাদের ব্যবহার করার জন্য ষড়যন্ত্র জন্য প্যানেল উল্লেখ । প্যাকেজের জন্য তাদের ব্যবহার অ-মানক evaulation ।
ggplot2
dplyr


1
: একটি সামান্য বেশি অকপট আলোচনার জন্য stackoverflow.com/questions/8055508/the-tilde-operator-in-r/...
— IRTFM

এর 'সূত্র' বিভাগে lazyevalচিত্র একটি ভাল ভূমিকা দেয় কি একটি সূত্র
— RobinL

82

আর ~সূত্রগুলিতে ব্যবহারের জন্য একটি (টিলড) অপারেটরকে সংজ্ঞায়িত করে । সূত্রে সব ধরণের ব্যবহার রয়েছে তবে রিগ্রেশন-এর জন্য সবচেয়ে সাধারণ:

library(datasets)
lm( myFormula, data=iris)

help("~")অথবা help("formula")আপনাকে আরও শিখিয়ে দেবে।

@ স্পিডম্যান মূল বিষয়গুলি আবরণ করেছেন। এটি কীভাবে কাজ করে তা আলোচনা করা যাক।

প্রথমত, অপারেটর হিসাবে নোট করুন যে এটি মূলত কোনও ফাংশনের শর্টকাট (দুটি যুক্তি সহ):

> `~`(lhs,rhs)
lhs ~ rhs
> lhs ~ rhs
lhs ~ rhs

এটি যেমন applyপারিবারিক আদেশগুলি ব্যবহারের জন্য জানতে সহায়ক হতে পারে ।

দ্বিতীয়ত, আপনি সূত্রটি পাঠ্য হিসাবে পরিচালনা করতে পারেন :

oldform <- as.character(myFormula) # Get components
myFormula <- as.formula( paste( oldform[2], "Sepal.Length", sep="~" ) )

তৃতীয়ত, আপনি এটিকে তালিকা হিসাবে পরিচালনা করতে পারেন :

myFormula[[2]]
myFormula[[3]]

অবশেষে সূত্রগুলি সহ কিছু সহায়ক কৌশল রয়েছে (আরও help("formula")দেখুন):

myFormula <- Species ~ . 

উদাহরণস্বরূপ, উপরের সংস্করণটি মূল সংস্করণের সমান, কারণ বিন্দুটির অর্থ "সমস্ত ভেরিয়েবলগুলি এখনও ব্যবহৃত হয়নি"। এটি আপনার চূড়ান্ত মডেল কলটিতে ডেটা ফ্রেম ব্যবহার করে looks


@ অ্যারি বি ফ্রেডম্যানের উত্তরের জন্য ধন্যবাদ তবে শেষ লাইনটি কিছুটা অস্পষ্ট যেখানে আপনি বলছেন যে ডট মানে "সমস্ত ভেরিয়েবল এখনও ব্যবহৃত হয়নি" "। আপনি যদি এটি আরও ব্যাখ্যা করতে পারে।
— অঙ্কিতা

9
অংকিত, "এই প্রসঙ্গে" এখনও ব্যবহৃত হয়নি "এর অর্থ উল্লেখ করা হয়নি। ইন Species~., প্রজাতি একমাত্র পরিবর্তনশীল যা ব্যবহৃত হয়েছে। অতএব, এটি ডেটা.ফ্রেমে প্রতিটি অন্যান্য পরিবর্তনশীল উপর নির্ভর করে।
— x4nd3r

আমি বুঝতে পারছি না myFormula <- Species ~ . । যখন ডট এখনও ডেটা.ফ্রেমে ভেরিয়েবলের সাথে প্রতিস্থাপিত হয়? আপনি একটি উদাহরণ প্রদান করতে পারেন
— srghma
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.