[R] create list of names where two df contain == values

R. Michael Weylandt <michael.weylandt@gmail.com> michael.weylandt at gmail.com
Wed Nov 16 14:34:14 CET 2011


I'm not at a computer now, so I can't take a close look at it, but I think the match() function can be helpful here. 

I'll try to get back to you with a fuller answer later. 

Michael

On Nov 16, 2011, at 8:03 AM, "Rob Griffin" <robgriffin247 at hotmail.com> wrote:

> Hello again... sorry to be posting yet again, but I hadn't anticipated this problem.
> 
> I am trying to now put the names found in one column in data frame 1 (lets call it df.1[,1]) in to a list from the rows where the values in df.1[,2] match values in a column of another dataframe (df.2[3])
> I tried to write this function so that it put the list of names (called Iffy) where the 2 criteria (df.1[141] and df.2[21]) matched but I think its too complex for a beginner R-enthusiast
> 
> ify<-function(x,y,a,b,c) if(x[[,a]]==y[[,b]]) {list(x[[,c]])} else {NULL}
> Iffy<-apply(  df.1,  1,  FUN=ify,  x=df.1,  y=df.2,  a=2,  b=3,  c=1  )
> 
> But this didn't work... Error in FUN(newX[, i], ...) : unused argument(s) (newX[, i])
> 
> 
> Here is a dataset that replicates the problem, you'll notice the "h" criteria values are different between the two dataframes and therefore it would produce a list  of the 9 letters where the two criteria columns matched (a,b,c,d,e,f,g,i,j):
> 
> 
> 
> df.1<-data.frame(rep(letters[1:10]))
> colnames(df.1)[1]<-("Letters")
> set.seed(1)
> df.1$numb1<-rnorm(10,1,1)
> df.1$extra.col<-c(1,2,3,4,5,6,7,8,9,10)
> df.1$id<-c("CG234","CG232","CG441","CG128","CG125","CG182","CG982","CG541","CG282","CG154")
> df.1
> 
> df.2<-data.frame(rep(letters[1:10]))
> colnames(df.2)[1]<-("Letters")
> set.seed(1)
> df.2$extra.col<-c(1,2,3,4,5,6,7,8,9,10)
> df.2$numb1<-rnorm(10,1,1)
> df.2$id<-c("CG234","CG232","CG441","CG128","CG125","CG182","CG982","CG541","CG282","CG154")
> df.2[8,3]<-12
> 
> df.1
> df.2
> 
> 
> 
> 
> Your patience is much appreciated,
> Rob
> 
> ______________________________________________
> 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.



More information about the R-help mailing list