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


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.