আর তে ভেক্টর এবং তালিকার ডেটা ধরণের মধ্যে পার্থক্য কী?


127

আর তে ভেক্টর এবং তালিকার ডেটা ধরণের মধ্যে প্রধান পার্থক্যগুলি কী? এই দুটি ডেটা ধরণের (বা না) ব্যবহারের সুবিধা বা অসুবিধাগুলি কী?

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

উত্তর:


77

টেকনিক্যালি তালিকা আছে , ভেক্টর যদিও খুব কম যে শব্দ ব্যবহার করেন। "তালিকা" হ'ল কয়েকটি মোডের মধ্যে একটি, অন্যদের সাথে "যৌক্তিক", "চরিত্র", "সংখ্যাসূচক", "পূর্ণসংখ্যা"। আপনি যাকে ভেক্টর বলছেন তা হ'ল কঠোর আর পার্লেন্সে "পারমাণবিক ভেক্টর":

 aaa <- vector("list", 3)
 is.list(aaa)   #TRUE
 is.vector(aaa)  #TRUE

তালিকাগুলি একটি "পুনরাবৃত্ত" ধরণের (ভেক্টরের) যেখানে পরমাণু ভেক্টরগুলি নয়:

is.recursive(aaa)  # TRUE
is.atomic(aaa)  # FALSE

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

নাম ছাড়া অন্য বৈশিষ্ট্যগুলি উপস্থিত থাকলে is.vectorফাংশনটি ফিরে আসবে এমন সতর্কতাও FALSEরয়েছে। দেখুন: ভেক্টর কী?


54

তালিকাগুলি "পুনরাবৃত্ত" হয়। এর অর্থ হ'ল এগুলিতে বিভিন্ন ধরণের মান এমনকি অন্য তালিকাগুলি থাকতে পারে:

x <- list(values=sin(1:3), ids=letters[1:3], sub=list(foo=42,bar=13))
x # print the list
x$values   # Get one element
x[["ids"]] # Another way to get an element
x$sub$foo  # Get sub elements
x[[c(3,2)]]  # Another way (gets 13)
str(x)     # A "summary" of the list's content

ডেটা সেটগুলি উপস্থাপন করতে তালিকায় আর ব্যবহৃত হয়: data.frameশ্রেণিটি মূলত একটি তালিকা যেখানে প্রতিটি উপাদান একটি নির্দিষ্ট ধরণের কলাম হয়।

আরেকটি ব্যবহার হ'ল কোনও মডেলকে উপস্থাপন করার সময়: ফলাফল থেকে lmএমন একটি তালিকা আসে যা দরকারী বস্তুগুলির একগুচ্ছ থাকে।

d <- data.frame(a=11:13, b=21:23)
is.list(d) # TRUE
str(d)

m <- lm(a ~ b, data=d)
is.list(m) # TRUE
str(m)

পারমাণবিক ভেক্টর (নন-লিস্টের মতো, তবে সংখ্যাসূচক, লজিকাল এবং চরিত্র) কার্যকর হয় যেহেতু সমস্ত উপাদান একই ধরণের বলে পরিচিত। এটি তাদের দ্রুত চালিত করে।


20

সবেমাত্র আরে প্রবেশ করেছেন এমন একজন হিসাবে, তবে একজন সি / জাভা / রুবি / পিএইচপি / পাইথন পটভূমি থেকে এসেছেন, আমি কীভাবে এটি মনে করি তা এখানে।

listআসলেই একটি অ্যারে + হ্যাশম্যাপ। এটি একটি পিএইচপি সহযোগী অ্যারে।

> foo = list(bar='baz')
> foo[1]
'baz'
> foo$bar
'baz'
> foo[['bar']]
'baz'

vectorএকটি নির্দিষ্ট ধরণের অ্যারে / তালিকা। এটিকে কোনও লিঙ্কযুক্ত তালিকার মতো ভাবেন - কারণ লিঙ্কযুক্ত তালিকায় ভিন্ন ভিন্ন আইটেমগুলি রাখা কোনওভাবেই একটি অ্যান্টি-প্যাটার্ন। এটি একই অর্থে ভেক্টর যে সিমডি / এমএমএক্স / ভেক্টর ইউনিট শব্দটি ব্যবহার করে।


3
আপনি থাকতে পারে keyব্যবহার করে ভেক্টর মধ্যে গুলি namesপদ্ধতি।
gokul_uf

9

এই এবং অনুরূপ প্রারম্ভিক প্রশ্নের উত্তর http://www.burns-stat.com/pages/Tutor/hints_R_begin.html এ দেওয়া হয়েছে

এটি একটি মৃদু পরিচয় যা বোঝা যায় আপনি দ্রুত পৌঁছে যাবেন এবং যত তাড়াতাড়ি সম্ভব আর এর সাথে চলমান। কিছুটা হলেও তা সফল হয়।

--- সম্পাদনা: -

আরও ব্যাখ্যা করার একটি প্রচেষ্টা; উপরোক্ত রেফারেন্স থেকে উদ্ধৃত।

পারমাণবিক ভেক্টর

তিন ধরণের পারমাণবিক ভেক্টর রয়েছে যা আপনার মুখোমুখি হতে পারে:

  • "সাংখ্যিক"
  • "লজিক্যাল"
  • "চরিত্র"

পারমাণবিক ভেক্টরগুলি মনে রাখার বিষয়টি হ'ল এগুলির সমস্ত উপাদানগুলি কেবল এক ধরণের।

তালিকা

তালিকায় বিভিন্ন উপাদানগুলিতে বিভিন্ন ধরণের আইটেম থাকতে পারে। তালিকার একটি উপাদানকে অন্য তালিকা হতে পারে, পারমাণবিক ভেক্টর (এবং অন্যান্য জিনিস)।

এই লিঙ্কটি দেখুন দয়া করে ।


2
ডাউনভোটেড: আপনার কমপক্ষে আমাদের অবশ্যই সেই ওয়েবসাইটের নির্দিষ্ট বিভাগে নির্দেশ করা উচিত যা মূল প্রশ্নের উত্তর দেয়।
nbro

2

তালিকার মধ্যে একাধিক ডেটা টাইপ যেমন অক্ষর, সংখ্যাগত, লজিকাল ইত্যাদি অন্তর্ভুক্ত। তবে ভেক্টরে কেবল একই ধরণের ডেটা থাকে। প্রাক্তন জন্য:

scores <- c(20,30,40,50)
student <- c("A","B","C","D")
sc_log <- c(TRUE,FALSE,FALSE,TRUE)

তালিকার জন্য:

mylist <- list(scores,student,sc_log)
# search for class of mylist vector 
#check structure of mylist using str() function.
str(mylist)
[1] list of 3
[1] $:num [1:4] 20 30 40 50
[2] $:chr [1:4] "A""B""C""D"
[3] $:log [1:4] TRUE FALSE FALSE TRUE

যার অর্থ মাইলিস্টে সংখ্যাসূচক, অক্ষর এবং লজিকাল যেমন একাধিক ডাটা টাইপযুক্ত তালিকা রয়েছে ve তবে ভেক্টরটিতে সেই ভেক্টরের সমস্ত উপাদানের একক ডাটা টাইপ থাকবে

প্রাক্তন জন্য:

ভেক্টর জন্য:

vector1 <- c(1,2,3,4)
Class(vector1)
[1] "Numeric"

#which means all elements of vector containing single data type that is numeric only.
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.