কীভাবে নতুন আইটেম যুক্ত করতে একটি খালি আর ভেক্টর তৈরি করবেন


93

আমি আরপিটি পাইথনে ব্যবহার করতে চাই, মডিউল আরপিআই 2 সরবরাহ করে। আমি লক্ষ্য করেছি যে আর এর খুব সুবিধাজনক []অপারেশন রয়েছে যার মাধ্যমে আপনি নির্দিষ্ট কলাম বা লাইনগুলি বের করতে পারেন। পাইথন স্ক্রিপ্টগুলির মাধ্যমে আমি কীভাবে এই জাতীয় ক্রিয়াকলাপটি অর্জন করতে পারি?

আমার ধারণা একটি আর ভেক্টর তৈরি এবং যাতে চূড়ান্ত ভেক্টর একই হিসাবে যে আর আমি একটি তৈরি করেছেন এই ভেক্টরটি মধ্যে যারা চেয়েছিলেন উপাদান যোগ হয় seq(), কিন্তু মনে হচ্ছে এটি একটি প্রাথমিক অঙ্ক 1 আছে, তাই চূড়ান্ত ফলাফল সবসময় would অঙ্ক 1 দিয়ে শুরু করুন, যা আমি চাই না। সুতরাং, এটি করার আরও ভাল উপায় আছে?

উত্তর:



57

আমি একটি ভেক্টর সাথে প্রাক-বরাদ্দ করি

> (a <- rep(NA, 10))
 [1] NA NA NA NA NA NA NA NA NA NA

তারপরে আপনি এর মধ্যে মান সন্নিবেশ করতে [] ব্যবহার করতে পারেন।


ভেক্টরের দৈর্ঘ্য শুরু থেকেই জানা থাকলে এটি সবচেয়ে ভাল উত্তর, কারণ এটি সবচেয়ে স্মৃতিশক্তি দক্ষ হবে
স্টিভেক

26

আপনি যেমন একটি খালি ভেক্টর তৈরি করতে পারেন

vec <- numeric(0)

এবং তারপরে সি () ব্যবহার করে উপাদান যুক্ত করুন

vec <- c(vec, 1:5)

তবে রোমুনভ যেমন বলেছে, কোনও ভেক্টরকে প্রাক-বরাদ্দ করা এবং তারপরে পপুলেশন করা আরও ভাল (কারণ এটি প্রতিবার উপাদানগুলি যুক্ত করার পরে আপনার ভেক্টরের একটি নতুন অনুলিপি পুনরায় প্রকাশ করা এড়ানো যায়)


আমি সংখ্যার সাথে আপনার সমাধানটি পছন্দ করি () তবে আমার অভিজ্ঞতা আমাকে 0 এর পরিবর্তে এনএ ব্যবহার করতে পরিচালিত করেছে (আপনি যদি সংখ্যার (2) ব্যবহার করেন তবে আপনি 0 0 পাবেন)। তবে এটি আমার ব্যক্তিগত পছন্দ।
রোমান Luštrik

অনেক ধন্যবাদ!! তবে নতুন একটি উপাদান যুক্ত হওয়ার পরে কি পূর্বেরটিকে মুক্ত করা সম্ভব? আমি কি কেবল rm () ব্যবহার করব?
লিগউইন

টাইপফ (সংখ্যাসূচক (0)) "ডাবল" দেয় যেখানে অন্য একটি সমস্যা রয়েছে যেখানে প্রয়োজনীয় উপাদানগুলি "পূর্ণসংখ্যা" দেয়, যখন যুক্ত করা হয়, "নতুন মানের ধরণটি আলাদা হতে পারে না" বলে ত্রুটি উত্থাপিত হয়, রূপান্তর কীভাবে?
লিগউইন

পাইথনে কাজ করার সময়, "হিসাবে" একটি কীওয়ার্ড হয়, উপরন্তু, পাইথনের এমন ডেটা টাইপ থাকে না, তাই আমার মনে হয় "as.integer" কাজ করবে না?
লিগউইন

রোমুনভ - সংখ্যাসূচক (0) অর্থ 0 দৈর্ঘ্যের একটি সংখ্যক ভেক্টর তৈরি করুন (অর্থাত্ কোনও উপাদান নয়) 1 দৈর্ঘ্যের ভেক্টর নয় যার উপাদান 0 হয়
অ্যারন স্ট্যাথাম

8

একটি খালি ভেক্টর ব্যবহার তৈরি করতে:

vec <- c();

দয়া করে মনে রাখবেন, আপনার যে ধরণের ভেক্টর প্রয়োজন তা যেমন সংখ্যাসূচক সে সম্পর্কে আমি কোনও অনুমান করছি না।

একবার ভেক্টর তৈরি হয়ে গেলে আপনি এটিতে উপাদানগুলি যুক্ত করতে পারেন:

উদাহরণস্বরূপ, সংখ্যার মান 1 যুক্ত করতে:

vec <- c(vec, 1);

অথবা, একটি স্ট্রিং মান "এ" যুক্ত করতে

vec <- c(vec, "a");

4
আপনি কি আসলে এটি চেষ্টা করেছেন? vec <- c()থেকে গ্রাম শক্তি সমিতির সেট NULL। আপনি একটি খালি ভেক্টর আপনি ব্যবহার করেন চান vec <- character(), vec <- numeric()ইত্যাদি
ম্যাথু বিজ্ঞ

5

আমিও দেখেছি

x <- {}

এখন আপনি কোনও মাত্রার ভেক্টরকে সংযুক্ত করতে বা বাঁধতে পারেন x

rbind(x, 1:10)
cbind(x, 1:10)
c(x, 10)

4
এটি হুবহু একই x <- NULL, এবং কোথাও রেফারেন্স ছাড়া অন্য কিছু তৈরি করে না।
জোরিস মেয়েস

3

ব্রানির দ্বারা নির্দেশিত হিসাবে, ভেক্টর () একটি সমাধান, যেমন

newVector <- vector(mode = "numeric", length = 50)

50 "0" এর প্রাথমিক মান হিসাবে "নিউভেক্টর" নামে একটি ভেক্টর ফিরিয়ে দেবে। এটি একটি প্রসারিত ভেক্টর এ পৌঁছানোর জন্য কেবল বিদ্যমান ভেক্টরে নতুন স্কেলার যুক্ত করাও মোটামুটি সাধারণ eg

aVector <- c(aVector, newScalar)


2

আরপিআই 2-তে, "[" "আর এর সাথে একই অপারেটরটি পাওয়ার উপায়" ".rx" ব্যবহার করা। আরপিআই 2 দিয়ে উত্তোলনের সম্পর্কে ডকুমেন্টেশন দেখুন

ভেক্টর তৈরির জন্য, যদি আপনি পাইথনের সাথে আপনার পথটি জানেন তবে কোনও সমস্যা হওয়া উচিত নয়। ভেক্টর তৈরি সম্পর্কে ডকুমেন্টেশন দেখুন


আমি এই উদ্দেশ্যে অজগরটিতে একটি ফাংশন তৈরি করতাম, যা অত্যন্ত জটিল এবং এটি কতটা ব্যাপকভাবে প্রয়োগ হতে পারে তা সম্পর্কে আমি নিশ্চিত নই। এখন আমি মনে করি এই অপারেটরগুলির সাথে, জীবন আরও সহজ হতে পারে :)
লিগউইন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.