We can have something like this; *Data1<-data.frame(Site1=c(5,NA,4),Site2=c(3,2,4),Site3=c(NA,5,NA)) Data2<-data.frame(TraitType1=c(1,2,3),TraitType2=c(2,4,2),TraitType3=c(5,1,1)) *
*rownames(Data1)<-paste("Species",1:3)* *rownames(Data2)<-paste("Species",1:3)* *User_Defined=function(dat1,dat2){c1=ncol(dat1)* *out=NULL* *dummy=lapply(1:c1,function(x){step1=dat1[,x]* *step2=dat2[which(is.na(step1)==F),]* *step3=length(unlist(apply(step2,2,unique)))* *out<<-c(out,step3)* *})* *Final<-data.frame(TraitRichness=out)* *rownames(Final)<-paste('Site',1:3)* *Final_Table<<-Final* *}* *User_Defined(Data1,Data2)* *Final_Table* I hope this is what you need. Best, Heramb On Tue, Sep 25, 2012 at 1:41 PM, Benjamin Gillespie <gy...@leeds.ac.uk>wrote: > Hi, > > Thanks for helping me with this one. > > To save you time, the following is the code for the tables I uploaded as > jpegs that you may not have received: > > > dat1<-data.frame(Species=paste("Species",1:3),Site1=c(5,NA,4),Site2=c(3,2,4),Site3=c(NA,5,NA)) > > dat2<-data.frame(Species=paste("Species",1:3),TraitType1=c(1,2,3),TraitType2=c(2,4,2),TraitType3=c(5,1,1)) > dat3<-data.frame(Site=paste("Site",1:3),Trait_Richness=c(5,7,3)) > > So, > > I have two matricies, dat1 and dat2. > > Dat1 is a species abundance matrix. Dat2 is a species trait matrix. > > I want to create dat3 through use of a script. > > Dat 3 is a count of unique traits observed at each site. i.e. at site 1, > species 1 and 3 are present (ass seen in dat1). Species 1 has traits: 1, 2 > and 5 for trait types 1, 2 and 3 respectively. Species 3 has traits: 3, 2 > and 1 for trait types 1, 2 and 3 respectively. > > So, at site 1: > > For trait type 1, 2 unique traits were observed. For trait type 2, 1 > unique trait was observed (both species 1 and 3 were classed as "1") and > for trait type 3, 2 unique traits (trait richness) were observed; thus, > 2+1+2=5. > > and so on... so at site 2, all three species were observed... > > For trait type 1, 3 unique traits were observed (1, 2, 3), for trait type > 2, 2 unique traits were observed (2, 4, 2) and for trait type 3, 2 unique > traits were observed (5, 1, 1). So, for site 2, trait richness is 7 (3+2+2) > traits. > > I hope this helps to explain, please let me know if you need any further > information, > > Ben Gillespie > Research Postgraduate > > School of Geography > University of Leeds > Leeds > LS2 9JT > > Tel: +44(0)113 34 33345 > Mob: +44(0)770 868 7641 > http://www.geog.leeds.ac.uk/ > ________________________________________ > From: arun [smartpink...@yahoo.com] > Sent: 24 September 2012 19:36 > To: Benjamin Gillespie > Subject: Re: [R] Script to count unique values from two linked matricies > > HI Ben, > > Sorry,I couldn't understand how you counted the trait richness. Could you > elaborate? > A.K. > > > ----- Original Message ----- > From: benrgillespie <gy...@leeds.ac.uk> > To: r-help@r-project.org > Cc: > Sent: Monday, September 24, 2012 7:47 AM > Subject: [R] Script to count unique values from two linked matricies > > I hope you can help with this one. > > I have two matricies: > > 1. A species abundance matrix: > > <http://r.789695.n4.nabble.com/file/n4643979/2species_matrix.jpg> > > 2. A species trait score matrix: > > <http://r.789695.n4.nabble.com/file/n4643979/2trait_matrix.jpg> > > The trait matrix lists trait scores for each species as listed in the > species abundance matrix. > > I would like to create a script that would effectively count the unique > traits (trait richness) for each site and produce an output like this: > > <http://r.789695.n4.nabble.com/file/n4643979/trait_richness.jpg> > > Firstly, is this possible in R? Secondly, if so, how would you go about > writing a script to achieve my aim? > > Many thanks in advance, please let me know if you need further information. > > Ben Gillespie (Research Postgraduate) > > > > -- > View this message in context: > http://r.789695.n4.nabble.com/Script-to-count-unique-values-from-two-linked-matricies-tp4643979.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > 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. > > ______________________________________________ > 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. > [[alternative HTML version deleted]] ______________________________________________ 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.