আর-তে কোনও ডাটাফ্রেমের প্রথম সারিটি কীভাবে মুছবেন?


86

আমার কাছে একাধিক 1000 টি সারি সহ 11 টি কলাম সহ একটি ডেটাসেট রয়েছে। কলামগুলিতে ভি 1, ভি 2, ভি 11 ইত্যাদি লেবেলযুক্ত ছিল I "c" কমান্ডটি ব্যবহার করে নামগুলি আমার কাছে আরও দরকারী কিছু দিয়ে প্রতিস্থাপন করেছি। আমি বুঝতে পারি নি যে সারি 1 এ প্রতিটি কলামের জন্য লেবেল রয়েছে এবং আমার আসল ডেটা সারি 2 থেকে শুরু হবে।

সারি 1 এবং হ্রাস মুছে ফেলার কোনও উপায় আছে?

উত্তর:


140

আপনার আসল ফাইল থেকে লেবেলগুলি এ জাতীয় রাখুন:

df = read.table('data.txt', header = T)

আপনার যদি x এবং y নামের কলামগুলি থাকে তবে আপনি সেগুলিকে এইভাবে সম্বোধন করতে পারেন:

df$x
df$y

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

df = df[-1,]

আপনি যদি কোনও ডেটা ফ্রেম থেকে একটি কলাম মুছতে চান তবে আপনি এটিতে নাল নির্ধারণ করতে পারেন:

df$x = NULL

আর-তে কোনও ডেটা তৈরি করতে এবং কীভাবে পরিচালনা করতে হবে তার কয়েকটি সাধারণ উদাহরণ এখানে রয়েছে:

# create a data.frame with 10 rows
> x = rnorm(10)
> y = runif(10)
> df = data.frame( x, y )

# write it to a file
> write.table( df, 'test.txt', row.names = F, quote = F )

# read a data.frame from a file: 
> read.table( df, 'test.txt', header = T )

> df$x
 [1] -0.95343778 -0.63098637 -1.30646529  1.38906143  0.51703237 -0.02246754
 [7]  0.20583548  0.21530721  0.69087460  2.30610998
> df$y
 [1] 0.66658148 0.15355851 0.60098886 0.14284576 0.20408723 0.58271061
 [7] 0.05170994 0.83627336 0.76713317 0.95052671

> df$x = x
> df
            y           x
1  0.66658148 -0.95343778
2  0.15355851 -0.63098637
3  0.60098886 -1.30646529
4  0.14284576  1.38906143
5  0.20408723  0.51703237
6  0.58271061 -0.02246754
7  0.05170994  0.20583548
8  0.83627336  0.21530721
9  0.76713317  0.69087460
10 0.95052671  2.30610998

> df[-1,]
            y           x
2  0.15355851 -0.63098637
3  0.60098886 -1.30646529
4  0.14284576  1.38906143
5  0.20408723  0.51703237
6  0.58271061 -0.02246754
7  0.05170994  0.20583548
8  0.83627336  0.21530721
9  0.76713317  0.69087460
10 0.95052671  2.30610998

> df$x = NULL
> df 
            y
1  0.66658148
2  0.15355851
3  0.60098886
4  0.14284576
5  0.20408723
6  0.58271061
7  0.05170994
8  0.83627336
9  0.76713317
10 0.95052671

4
আমি নিশ্চিত নই যদি এটা @akz পরিষ্কার আছে: মধ্যে ঘোরা , তাই এই প্যারামিটার লোড হেডার আর বলে। দেখুন বিস্তারিত জানার জন্য। header=TTTRUE?read.table
daroczig

নোট করুন যে আপনার যদি একটি একক কলামের ডেটা ফ্রেম থাকে তবে দয়া করে এই উত্তরটি দেখুন - stackoverflow.com/a/3232770/4606130 যেখানে drop = FALSEনেতিবাচক সূচকের সময়
আপনারও

28

সারিগুলি সরাতে আপনি নেতিবাচক সূচী ব্যবহার করতে পারেন, যেমন:

dat <- dat[-1, ]

এখানে একটি উদাহরণ:

> dat <- data.frame(A = 1:3, B = 1:3)
> dat[-1, ]
  A B
2 2 2
3 3 3
> dat2 <- dat[-1, ]
> dat2
  A B
2 2 2
3 3 3

এটি বলেছিল যে, সারি 1-এ শেষ হওয়া লেবেলগুলি সরিয়ে দেওয়ার চেয়ে আপনার আরও সমস্যা হতে পারে সম্ভবত তখন আর সম্ভবত ডেটাটিকে পাঠ্য হিসাবে ব্যাখ্যা করা হয়েছে এবং সেখান থেকে উপাদানগুলিতে রূপান্তরিত হয়েছে। আপনার ডেটা অবজেক্টটি str(foo)কোথায়, fooকীভাবে তা ডেটা ধরণের সম্পর্কে বলে Check

দেখে মনে হচ্ছে আপনার কেবলমাত্র header = TRUEকলটিতে ডেটা পড়তে হবে (ধরে নিই যে আপনি এটি পড়েন read.table()বা এর কোনও একটি র্যাপারের মাধ্যমে।


14

আমি সর্বাধিক ভোট দেওয়া উত্তরের সাথে একমত হওয়ার পরে, প্রথমটি বাদে সমস্ত সারি রাখার অন্য উপায় এখানে:

dat <- tail(dat, -1)

এটি হ্যাডলি উইকহ্যামের dplyrপ্যাকেজ ব্যবহার করেও সম্পন্ন করা যায় ।

dat <- dat %>% slice(-1)

13

কেউ সম্ভবত সত্যই সারিটি সরাতে চায় না। সুতরাং আপনি যদি অর্থবহ কিছু খুঁজছেন তবে তা শর্তাধীন নির্বাচন

#remove rows that have long length and "0" value for vector E

>> setNew<-set[!(set$length=="long" & set$E==0),]

এটি এমন প্রশ্নের উত্তর যা জিজ্ঞাসা করা হয়নি। আমি মনে করি এটি সাহায্য করার চেয়ে বিভ্রান্তিকর।
মার্কিন উইন্ডল


6

dat <- dat[-1, ]কাজ করেছে তবে এটি আমার ডেটাফ্রেমটিকে হত্যা করেছে, এটিকে অন্য ধরণের রূপান্তর করেছে। পরিবর্তে এটি ব্যবহার করতে হবে dat <- data.frame(dat[-1, ])তবে এটি সম্ভবত একটি বিশেষ কেস কারণ এই ডেটাফ্রেমের শুরুতে কেবল একটি কলাম ছিল।


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