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@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.

Reply via email to