আর [বদ্ধ] মধ্যে সদৃশ সারি ডেটা ফ্রেম সরিয়ে ফেলা হচ্ছে


71

এই উদাহরণের ডেটা ফ্রেম থেকে আমি সদৃশ সারিগুলি কীভাবে সরিয়ে ফেলব?

A   1
A   1
A   2
B   4  
B   1
B   1
C   2
C   2

আমি উভয় কলামের উপর ভিত্তি করে সদৃশগুলি মুছে ফেলতে চাই:

A   1
A   2
B   4
B   1
C   2

অর্ডার গুরুত্বপূর্ণ নয়।


টুইট
— llrs

@ ললোপিস হ্যাঁ, তবে এখনই এটি করতে অনেক দেরি হয়েছে - এবং আমরা যখন এটি প্রাথমিকভাবে বন্ধ করেছিলাম তখন খুব দেরি হয়েছিল। এই ধরণের প্রশ্নটি বহু বছর আগে অন-টপিক বিবেচনা করা হত (বর্ডারলাইন) তবে আজকাল এটি দ্রুত স্থানান্তরিত হবে।
— হোয়বার

উত্তর:


115

unique()প্রকৃতপক্ষে আপনার প্রশ্নের উত্তর দেয়, তবে একই পরিণতি অর্জনের জন্য আরও একটি সম্পর্কিত এবং আকর্ষণীয় ফাংশন duplicated()।

এটি আপনাকে কোন সারিগুলি নকল করা হয়েছে তা সন্ধান করার সম্ভাবনা দেয়।

a <- c(rep("A", 3), rep("B", 3), rep("C",2))
b <- c(1,1,2,4,1,1,2,2)
df <-data.frame(a,b)

duplicated(df)
[1] FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE

> df[duplicated(df), ]
  a b
2 A 1
6 B 1
8 C 2

> df[!duplicated(df), ]
  a b
1 A 1
3 A 2
4 B 4
5 B 1
7 C 2

2
'সদৃশ' ফাংশন উল্লেখ করার জন্য ধন্যবাদ। এটি কলামগুলির একটি উপসেটের ভিত্তিতে সদৃশ সারিগুলি মুছতে ব্যবহার করা যেতে পারে।
— জোকো

51

আপনি খুঁজছেন unique()।

a <- c(rep("A", 3), rep("B", 3), rep("C",2))
b <- c(1,1,2,4,1,1,2,2)
df <-data.frame(a,b)
unique(df)

> unique(df)
  a b
1 A 1
3 A 2
4 B 4
5 B 1
7 C 2

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