Dear R-Users and experts, This is my first post in this forum. I have two csv files file1 and file2. file1(many rows and columns) is read into dataframe *data1* File2 is read into dataframe *data2* which have only one column of data which contains the column names that need to be removed from dataframe *data1*columns and update the *data1 *data frame. Example: data1 <-read.csv(file1.......,header=T) Sno,Data_1,Data_2,Data_3 1,2,3,4 data2<- read.csv(file2,......header=F) Data_2 Data_3 The output *data1.new* data frame should be like this Sno,Data_1 1,2 So I request the R code to accomplish this task. Regards Sidda -- View this message in context: http://r.789695.n4.nabble.com/Filtering-few-column-from-one-data-frame-based-on-another-data-frame-tp4646072.html Sent from the R help mailing list archive at Nabble.com.
Filtering few column from one data frame based on another data frame
5 messages · siddu479, Jeff Newmiller, arun +1 more
Hello, Try the following. keep <- which(!names(data2) %in% names(data1)) data1[, keep] Hope this helps, Rui Barradas Em 13-10-2012 15:48, siddu479 escreveu:
Dear R-Users and experts, This is my first post in this forum. I have two csv files file1 and file2. file1(many rows and columns) is read into dataframe *data1* File2 is read into dataframe *data2* which have only one column of data which contains the column names that need to be removed from dataframe *data1*columns and update the *data1 *data frame. Example: data1 <-read.csv(file1.......,header=T) Sno,Data_1,Data_2,Data_3 1,2,3,4 data2<- read.csv(file2,......header=F) Data_2 Data_3 The output *data1.new* data frame should be like this Sno,Data_1 1,2 So I request the R code to accomplish this task. Regards Sidda -- View this message in context: http://r.789695.n4.nabble.com/Filtering-few-column-from-one-data-frame-based-on-another-data-frame-tp4646072.html Sent from the R help mailing list archive at Nabble.com.
______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
I suggest you go back to the Introduction to R document supplied with the software and read about indexing.
In particular, pay attention to indexing into a matrix or data frame using data1[rowspec,columnspec] syntax. There are three kinds of row and column specification types, and any of the the three can be used to solve your problem.
---------------------------------------------------------------------------
Jeff Newmiller The ..... ..... Go Live...
DCN:<jdnewmil at dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go...
Live: OO#.. Dead: OO#.. Playing
Research Engineer (Solar/Batteries O.O#. #.O#. with
/Software/Embedded Controllers) .OO#. .OO#. rocks...1k
---------------------------------------------------------------------------
Sent from my phone. Please excuse my brevity.
siddu479 <onlyfordigitalstuff at gmail.com> wrote:
Dear R-Users and experts, This is my first post in this forum. I have two csv files file1 and file2. file1(many rows and columns) is read into dataframe *data1* File2 is read into dataframe *data2* which have only one column of data which contains the column names that need to be removed from dataframe *data1*columns and update the *data1 *data frame. Example: data1 <-read.csv(file1.......,header=T) Sno,Data_1,Data_2,Data_3 1,2,3,4 data2<- read.csv(file2,......header=F) Data_2 Data_3 The output *data1.new* data frame should be like this Sno,Data_1 1,2 So I request the R code to accomplish this task. Regards Sidda -- View this message in context: http://r.789695.n4.nabble.com/Filtering-few-column-from-one-data-frame-based-on-another-data-frame-tp4646072.html Sent from the R help mailing list archive at Nabble.com.
______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Hi Rui, By running your code on an example dataset: set.seed(1) dat1<-data.frame(Sno=sample(1:50,10,replace=TRUE),Data_1=rnorm(10,15),Data_2=rnorm(10,25),Data_3=runif(10,0.5)) dat2<-read.table(text=" Data_2 Data_3 ",sep="",header=FALSE,stringsAsFactors=FALSE) keep <- which(!names(dat2) %in% names(dat1)) dat1[, keep] #[1] 14 19 29 46 11 45 48 34 32? 4 I guess, the OP needs both "Sno" and "Data_1" i the resultant dataframe. #My code: res<-dat1[!colnames(dat1)%in%dat2[,1]] head(res) # Sno?? Data_1 #1? 14 14.17953 #2? 19 15.48743 #3? 29 15.73832 #4? 46 15.57578 #5? 11 14.69461 #6? 45 16.51178 A.K. ----- Original Message ----- From: Rui Barradas <ruipbarradas at sapo.pt> To: siddu479 <onlyfordigitalstuff at gmail.com> Cc: r-help at r-project.org Sent: Saturday, October 13, 2012 12:10 PM Subject: Re: [R] Filtering few column from one data frame based on another data frame Hello, Try the following. keep <- which(!names(data2) %in% names(data1)) data1[, keep] Hope this helps, Rui Barradas Em 13-10-2012 15:48, siddu479 escreveu:
Dear R-Users and experts, This is my first post in this forum. I have two csv files file1 and file2. file1(many rows and columns) is read into dataframe *data1* File2 is read into dataframe *data2* which have only one column of data which contains the column names that need to be removed from dataframe *data1*columns and update the *data1 *data frame. Example: data1 <-read.csv(file1.......,header=T) Sno,Data_1,Data_2,Data_3 1,2,3,4 data2<- read.csv(file2,......header=F) Data_2 Data_3 The output *data1.new* data frame? should be like this Sno,Data_1 1,2 So I request the R code to accomplish this task. Regards Sidda -- View this message in context: http://r.789695.n4.nabble.com/Filtering-few-column-from-one-data-frame-based-on-another-data-frame-tp4646072.html Sent from the R help mailing list archive at Nabble.com.
______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Hello, You're right, that's the result of not having test data (and being in a hurry). Anyway, apologies to the op, and thanks for the correction. Rui Barradas Em 13-10-2012 19:13, arun escreveu:
Hi Rui, By running your code on an example dataset: set.seed(1) dat1<-data.frame(Sno=sample(1:50,10,replace=TRUE),Data_1=rnorm(10,15),Data_2=rnorm(10,25),Data_3=runif(10,0.5)) dat2<-read.table(text=" Data_2 Data_3 ",sep="",header=FALSE,stringsAsFactors=FALSE) keep <- which(!names(dat2) %in% names(dat1)) dat1[, keep] #[1] 14 19 29 46 11 45 48 34 32 4 I guess, the OP needs both "Sno" and "Data_1" i the resultant dataframe. #My code: res<-dat1[!colnames(dat1)%in%dat2[,1]] head(res) # Sno Data_1 #1 14 14.17953 #2 19 15.48743 #3 29 15.73832 #4 46 15.57578 #5 11 14.69461 #6 45 16.51178 A.K. ----- Original Message ----- From: Rui Barradas <ruipbarradas at sapo.pt> To: siddu479 <onlyfordigitalstuff at gmail.com> Cc: r-help at r-project.org Sent: Saturday, October 13, 2012 12:10 PM Subject: Re: [R] Filtering few column from one data frame based on another data frame Hello, Try the following. keep <- which(!names(data2) %in% names(data1)) data1[, keep] Hope this helps, Rui Barradas Em 13-10-2012 15:48, siddu479 escreveu:
Dear R-Users and experts, This is my first post in this forum. I have two csv files file1 and file2. file1(many rows and columns) is read into dataframe *data1* File2 is read into dataframe *data2* which have only one column of data which contains the column names that need to be removed from dataframe *data1*columns and update the *data1 *data frame. Example: data1 <-read.csv(file1.......,header=T) Sno,Data_1,Data_2,Data_3 1,2,3,4 data2<- read.csv(file2,......header=F) Data_2 Data_3 The output *data1.new* data frame should be like this Sno,Data_1 1,2 So I request the R code to accomplish this task. Regards Sidda -- View this message in context: http://r.789695.n4.nabble.com/Filtering-few-column-from-one-data-frame-based-on-another-data-frame-tp4646072.html Sent from the R help mailing list archive at Nabble.com.
______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.