কীভাবে ম্যাট্রিক্সকে একটি কলামে উপসেট করা যায়, ম্যাট্রিক্স ডেটা টাইপ বজায় রাখা যায়, সারি / কলামের নাম বজায় রাখা যায়?


84

আমি যখন একটি একক কলামে একটি ম্যাট্রিক্স সাবসেট করি, ফলাফলটি ক্লাস সংখ্যার হয়, ম্যাট্রিক্স নয় (অর্থাত্ আমারম্যাট্রিক্স [, 5] পঞ্চম কলামে সাবসেট করতে)। কোনও একক কলামে সাবসেট করার, ম্যাট্রিক্স ফর্ম্যাটটি বজায় রাখা, এবং জটিল কিছু না করে সারি / কলামের নামগুলি বজায় রাখার কোনও কমপ্যাক্ট উপায় আছে:

matrix( myMatrix[ , 5 ] , dimnames = list( rownames( myMatrix ) , colnames( myMatrix )[ 5 ] )

উত্তর:


122

drop=FALSEযুক্তি ব্যবহার করুন [

m <- matrix(1:10,5,2)
rownames(m) <- 1:5
colnames(m) <- 1:2
m[,1]             # vector
m[,1,drop=FALSE]  # matrix

আমি শপথ হবে আছে আমি শুধু সম্প্রতি এই দেখেছি কিন্তু এটা অনুরূপ dataframe আচরণ নিয়ে প্রশ্ন করা হয়েছিল হয়তো: stackoverflow.com/questions/6941985/...
IRTFM

4
আপনি যদি প্রথম মাত্রার সাহায্যে সূচক চান, আপনি নীচের মতো ড্রপ ব্যবহার করতে পারেন:m[1,,drop=FALSE]
কেভিন বুলাউঝি

পরিসংখ্যানগত ভিত্তিতে উদাহরণস্বরূপ, কুক-ডি দূরত্ব ব্যবহার করে এবং পরে কাট-অফ মানের যেমন 0.1 ব্যবহার করে মানগুলি নির্বাচন করে, এটি সম্পর্কিত ডাটাশেটের স্ব-স্ব সংখ্যার সাথে cooksD মানগুলির ফলাফল করবে cooksd<-as.data.frame(cooks.distance(ft1)) cooksD_outliers<-cooksd[cooksd>0.1,drop=FALSE,]
এলিয়াস এস্ট্যাটাস্টিক EU

ফলাফল <-apply (টেম্প, 1, ফাংশন (এক্স) ট্যাপ্লি (এক্স, জেনিসেমবল, ফাংশন (এক্স) মানে (এক্স, না.আরএম = টি))) কীভাবে সমস্যাটি মোকাবেলা করতে হবে যে ফলাফলটি একটি অ্যারে, তবে বাস্তবে, আমি এটি একটি কলাম ডেটা ফ্রেম হতে চান? ধন্যবাদ
শিচেং গুও

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