আর ব্যবহার করে সর্বাধিক মান সমেত সারি সূচকগুলি সন্ধান করা


117

নিম্নলিখিত ম্যাট্রিক্সটি দেওয়া অনুমান করি যে আমি কলাম দুটিতে সর্বাধিক মান সন্ধান করতে চাই:

mat <- matrix(c(1:3,7:9,4:6), byrow = T, nc = 3)
mat
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    7    8    9
[3,]    4    5    6

আমি জানি max(mat[,2])8 ফিরে আসবে আমি কীভাবে সারি সূচকটি ফিরিয়ে আনতে পারি, এই ক্ষেত্রে সারিতে দুটি?

উত্তর:



27

দেখুন ?order। আপনার কেবল শেষ সূচকটি প্রয়োজন (বা প্রথম হ্রাস ক্রমে), সুতরাং এটি কৌশলটি করা উচিত:

order(matrix[,2],decreasing=T)[1]

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

7
তবে মনে রাখবেন এটি কোন থেকে বেশি ধীর। ম্যাক্স, কারণ আপনাকে পুরো কলামটি বাছাই করতে হবে :)
বারটেকটার্টানাস

টুইটার : পি
নিক উলি

10
বাছাই ছাড়াই, অবশ্যই। সর্বাধিক প্রয়োজন ও (এন)
সন্ধানের

আমি র‌্যাঙ্ক এবং অর্ডারের মধ্যে বিভ্রান্ত হয়ে পড়েছি। orderপ্রতিটি উপাদানের সূচকটি প্রদান করে তবে উপাদানগুলির মান অনুসারে বাছাই করে। rankসূচক প্রতিটি উপাদান ফেরৎ হবে , যদি তালিকা প্রথম সাজানো হয়েছে। সুতরাং orderবর্তমান সূচক মানগুলি ফেরত দেয়; এবং পান্ডাসের ক্ষেত্রে "ইনডেক্সার" হিসাবে ব্যবহার করুন।
রেড মটর

2

নিম্নলিখিতটি সম্পর্কে কীভাবে, y যেখানে আপনার ম্যাট্রিক্সের নাম এবং আপনি পুরো ম্যাট্রিক্সে সর্বাধিক সন্ধান করছেন:

row(y)[y==max(y)]

আপনি যদি সারিটি বের করতে চান:

y[row(y)[y==max(y)],] # this returns unsorted rows.

বাছাই করা সারিগুলি ব্যবহার করতে:

y[sort(row(y)[y==max(y)]),]

এই পদ্ধতির সুবিধা হ'ল আপনি শর্তসাপেক্ষে আপনার প্রয়োজনীয় কিছুতে পরিবর্তন করতে পারেন। এছাড়াও, col(y)হ্যাঙ্গিং কমা ব্যবহার এবং অবস্থান ব্যবহার করে আপনি কলামগুলিও বের করতে পারেন।

y[,col(y)[y==max(y)]]

একটি নির্দিষ্ট কলামে সর্বাধিকের জন্য সারি সন্ধান করতে, কলাম 2 আপনি ব্যবহার করতে পারেন তা বলুন:

seq(along=y[,2])[y[,2]==max(y[,2])]

আবার শর্তসাপেক্ষে বিভিন্ন প্রয়োজনীয়তা সন্ধান করতে নমনীয়।

অতিরিক্ত ধারণাগুলির জন্য ফিল স্পেক্টর এর দুর্দান্ত "এস এবং এস প্লাসের একটি পরিচিতি" অধ্যায় 5 দেখুন।

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