ভেরিয়েবলের প্রকার ও শ্রেণি


85

দুটি আর প্রশ্ন:

  1. একটি ভেরিয়েবলের টাইপ (ফিরে আসা typeof) এবং ক্লাসের (ফেরত class) মধ্যে পার্থক্য কী? C ++ ভাষার মধ্যে পার্থক্য কি একইরকম?
  2. ভেরিয়েবলের সম্ভাব্য প্রকার ও শ্রেণি কী কী?

এই সম্পর্কিত পোস্টটি দরকারী তথ্যও সরবরাহ করতে পারে: স্ট্যাকওভারফ্লো.
com/ প্রশ্নগুলি

উত্তর:


96

আর-তে প্রতিটি "অবজেক্ট" এর a modeএবং a থাকে class। প্রাক্তন প্রতিনিধিত্ব করে যে কীভাবে কোনও বস্তু মেমরিতে সংরক্ষণ করা হয় (সংখ্যাসূচক, চরিত্র, তালিকা এবং ফাংশন) যখন পরবর্তীকালে এটি বিমূর্ত প্রকারের প্রতিনিধিত্ব করে। উদাহরণ স্বরূপ:

d <- data.frame(V1=c(1,2))
class(d)
# [1] "data.frame"
mode(d)
# [1] "list"
typeof(d)
# list

আপনি দেখতে পাচ্ছেন যে ডেটা ফ্রেমগুলি মেমরিতে সংরক্ষণ করা হয় listতবে সেগুলি data.frameবস্তুগুলিতে আবৃত থাকে । পরেরটি সদস্যের ফাংশনগুলির পাশাপাশি printকাস্টম আচরণের সাথে ওভারলোডিং ফাংশনগুলি ব্যবহারের অনুমতি দেয়।

typeof( storage.mode) সাধারণত হিসাবে modeসর্বদা হিসাবে একই তথ্য দেবে । বিন্দু ক্ষেত্রে:

typeof(c(1,2))
# [1] "double"
mode(c(1,2))
# [1] "numeric"

এর পিছনে যুক্তি এখানে পাওয়া যাবে :

আর নির্দিষ্ট ফাংশন typeof একটি r- বস্তুর টাইপ ফেরৎ

ফাংশন মোড বেকার, চেম্বারস এবং উইলকস (1988) অর্থে কোনও অবজেক্টের মোড সম্পর্কে তথ্য দেয় এবং এস ভাষার অন্যান্য প্রয়োগের সাথে আরও সুসংগত

লিঙ্ক আছে যা আমি উপরে পোস্ট এছাড়াও সমস্ত নেটিভ আর একটি তালিকা রয়েছে basic types(ভেক্টর, তালিকা ইত্যাদি) এবং সমস্ত compound objects(বিষয়গুলি এবং data.frames) ভাল কিভাবে কিছু উদাহরণ হিসেবে mode, typeofএবং classপ্রতিটি টাইপ জন্য সম্পর্কিত হয়।


4
"আর ইন প্রতিটি" অবজেক্টের "একটি মোড এবং একটি শ্রেণি থাকে" যতক্ষণ না তাদের এস 4 ওওপি শ্রেণি কাঠামোর দৃষ্টিকোণ থেকে দেখা হয়। এস 3-তে, বস্তুগুলির ক্লাসের নাম নির্ধারিত নাও হতে পারে:oldClass(matrix(1:10, 2,5)) # NULL
এরদোগান সিইভিয়ার

6

typeআর-এ উপলব্ধ বিভিন্ন ডেটা স্ট্রাকচারকে সত্যই বোঝায় the আর ভাষা সংজ্ঞা ম্যানুয়ালটিতে এই আলোচনা আপনাকে অবজেক্ট এবং প্রকারের জন্য শুরু করতে পারে।

অন্যদিকে, classআর এর অর্থ যা আপনি আশা করতে পারেন তার চেয়ে অন্য কিছু। থেকে আর ভাষা সংজ্ঞা ম্যানুয়াল (যে আর এর সংস্করণের সাথে এসে):

2.2.4 ক্লাস

আর এর একটি বিস্তৃত শ্রেণিবদ্ধ ব্যবস্থা 1 রয়েছে যা মূলত শ্রেণীর বৈশিষ্ট্যের মাধ্যমে নিয়ন্ত্রিত হয়। এই বৈশিষ্ট্যটি এমন একটি অক্ষর ভেক্টর যা ক্লাসগুলির তালিকা সহ কোনও বস্তুর উত্তরাধিকার সূত্রে প্রাপ্ত। এটি আর-তে "জেনেরিক পদ্ধতিগুলি" কার্যকারিতার ভিত্তি তৈরি করে

এই বৈশিষ্ট্যটি ব্যবহারকারীর দ্বারা সীমাবদ্ধতা ছাড়াই অ্যাক্সেস করতে এবং কার্যত হেরফের করা যায়। শ্রেণীর পদ্ধতিগুলি প্রত্যাশা করে এমন কোনও উপাদান আসলে এমন উপাদানগুলি ধারণ করে তা পরীক্ষা করে দেখা যায় না। সুতরাং, শ্রেণি বৈশিষ্ট্য পরিবর্তন করে সাবধানতার সাথে করা উচিত, এবং যখন তারা উপলব্ধ থাকে নির্দিষ্ট সৃজন এবং জবরদস্তি কার্যকারিতা পছন্দ করা উচিত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.