[R] how to do averaging of two tables (rows with columns)
Rainer Schuermann
rainer.schuermann at gmx.net
Fri May 11 08:03:10 CEST 2012
Based upon my understanding of your problem, this should do the job:
> d3 <- dat1
> d3[2] <- ifelse( d3[2] == 1, dat2[1,2], NA )
> d3[3] <- ifelse( d3[3] == 1, dat2[2,2], NA )
> d3[4] <- "Nodata"
> d3[5] <- ifelse( d3[5] == 1, dat2[3,2], NA )
> d3$average <- rowMeans( d3[c(2,3,5)], na.rm = TRUE )
d3 is now the same as your dat3.
This is cumbersome, but maybe a starting point.
Rgds,
Rainer
On Friday 11 May 2012 01:35:18 Kristi Glover wrote:
>
> Hi R user,
> I saw some errors in the dat1.
> The correct dat1 is
>
> dat1 <- structure(list(X = structure(1:4, .Label = c("Plot1",
> "Plot2", "plot3", "plot4"), class = "factor"), speciesX = c(1L, 0L, 0L, 1L), speciesY =
> c(0L, 1L, 0L, 0L), speciesZ = c(1L, 1L, 0L, 1L), speciesXX = c(1L, 0L, 1L, 0L)), .Names =
> c("X", "speciesX", "speciesY", "speciesZ", "speciesXX"), class = "data.frame", row.names =
> c(NA, -4L))
>
>
> cheers,
> K
>
>
> > From: kristi.glover at hotmail.com
> > To: r-help at r-project.org
> > Date: Thu, 10 May 2012 19:03:38 -0300
> > Subject: [R] how to do averaging of two tables (rows with columns)
> >
> >
> >
> > Hi R user,
> > I finally able to send you the table in
> > readable format. I have seen that some of you do send tables in email
> > when asking questions, but why i could not send. Any way
> > some of you helped me to send you the example table in a readable format.
> >
> > now,
> > I want to concentrate on my problem. I am trying to get the information
> > (dat 3) from dat 1 and 2 in R. I have very big data but these data are
> > just hypothetical data. my data structures are exactly same as dat 1
> > and dat 2. I created dat 3 and dat4 manually to show what information I
> > wanted to have.
> >
> > I am struggling to figure it out how I can do in R. I think it is not difficult. I hope any one can help me.
> >
> > dat1 is the table of species occurrence (o means species absence, 1 means species presence).
> >
> > dat1 <- structure(list(X = structure(1:4, .Label = c("Plot1",
> > "Plot2", "plot3", "plot4"), class = "factor"), speciesX = c(1L, 0L, 1L, 0L), speciesY =
> > c(0L, 1L, 0L, 0L), speciesZ = c(1L, 1L, 0L, 1L), speciesXX = c(0L, 0L, 1L, 0L)), .Names =
> > c("X", "speciesX", "speciesY", "speciesZ", "speciesXX"), class = "data.frame", row.names =
> > c(NA, -4L))
> >
> > dat2 is the species tolerances value in each environmental variable
> >
> > dat2 <- structure(list(X = structure(c(1L,
> >
> > 3L, 2L), .Label = c("SpeciesX", "SpeciesXX", "SpeciesY"), class = "factor"), EnviA =
> >
> > c(0.21, 0.1, 0.14), EnviB = c(0.4, 0.15, 0.16), EnviC = c(0.17, 0.18, 0.19)), .Names =
> >
> > c("X", "EnviA", "EnviB", "EnviC"), class = "data.frame", row.names = c(NA, -3L))
> >
> >
> > ## note (here in dat 2 there is no "species Z" you can see that )
> > Now, I want to get the average value of tolerances in each grid. like dat 3
> >
> > the dat3 is based on the column EnviA.
> >
> > dat3 <-structure(list(X = structure(1:4, .Label = c("plot1",
> >
> > "plot2", "plot3", "plot4"), class = "factor"), speciesX = c(0.21, NA, NA,
> >
> > 0.21), speciesY = c(NA, 0.1, NA, NA), speciesZ = structure(c(1L, 1L, 1L,
> >
> > 1L), .Label = "Nodata", class = "factor"), speciesXX = c(0.14, NA, 0.14,
> >
> > NA), average = c(0.175, 0.1, 0.14, 0.21)), .Names = c("X", "speciesX",
> >
> > "speciesY", "speciesZ", "speciesXX", "average"), class = "data.frame",
> >
> > row.names = c(NA, -4L))
> >
> >
> > dat4 is same thing as dat3 but here i used EnviB instead of EnviA.
> >
> > dat4 <- structure(list(X = structure(1:4, .Label = c("plot1", "plot2", "plot3", "plot4"), class =
> >
> > "factor"), speciesX = c(0.4, NA, NA, 0.4), speciesY = c(NA, 0.15, NA, NA), speciesZ =
> >
> > structure(c(1L, 1L, 1L, 1L), .Label = "Nodata", class = "factor"), speciesXX = c(0.16, NA,
> >
> > 0.16, NA), average = c(0.28, 0.15, 0.16, 0.4)), .Names = c("X", "speciesX", "speciesY",
> >
> > "speciesZ", "speciesXX", "average"), class = "data.frame", row.names = c(NA, -4L))
> >
> > I hope you understand my problem and you can help me.
> >
> > Thanks
> >
> > Kristi
> >
> >
> >
> > [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > 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.
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> 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