From: warthog29 <gaylewind_at_gmail.com>

Date: Sun, 10 Aug 2008 10:43:04 -0700 (PDT)

>> On Sun, Aug 10, 2008 at 09:02:59AM -0700, warthog29 wrote:

*>> >
*

*>> > Hi,
*

*>> > I would like to use the R's outer function on y below so that I can
*

*>> subtract
*

*>> > elements from each other. The resulting dataframe is symmetric, save
*

*>> for the
*

*>> ^^^^^^
*

*>> outer() returns a matrix, not a data frame.
*

*>>
*

*>> > negative signs on the other half of the numbers. I would like to get
*

*>> only
*

*>> > half of the dataframe. Here is the code I wrote (it is returning only
*

*>> the
*

*>> > first line of the all elements I want. Please help).
*

*>> > y<-c(4,4,3.9,3.8,3.7,3.6,3.5,3.5,3.5,3.3,3.2,3.2)
*

*>> >
*

*>> > b<-outer(y,y,"-")
*

*>>
*

*>> > b<-as.matrix(by)
*

*>>
*

*>> I assume that line was supposed to be b<-as.matrix(by). In any case
*

>> you don't need it; b is a matrix already.

*>>
*

*>> > # I want to keep the elements:
*

*>> > #b[1,2:12],
*

*>> > #b[2,3:12],
*

*>> > #.........until
*

*>> > #b[11,12:12].
*

*>>
*

*>> Use upper.tri() to get the upper-triangle:
*

*>>
*

*>> b[upper.tri(b, diag=FALSE)]
*

*>> [1] 0.0 0.1 0.1 0.2 0.2 0.1 0.3 0.3 0.2 0.1 0.4 0.4 0.3 0.2 0.1 0.5 0.5
*

*>> 0.4 0.3
*

*>> [20] 0.2 0.1 0.5 0.5 0.4 0.3 0.2 0.1 0.0 0.5 0.5 0.4 0.3 0.2 0.1 0.0 0.0
*

*>> 0.7 0.7
*

*>> [39] 0.6 0.5 0.4 0.3 0.2 0.2 0.2 0.8 0.8 0.7 0.6 0.5 0.4 0.3 0.3 0.3 0.1
*

*>> 0.8 0.8
*

*>> [58] 0.7 0.6 0.5 0.4 0.3 0.3 0.3 0.1 0.0
*

*>>
*

*>> Or perhaps you want to knock out the negative entries, but still keep the
*

*>> matrix structure:
*

*>>
*

*>> b[lower.tri(b)] <- NA
*

*>>
*

*>> or perhaps you wanted
*

*>>
*

*>> b <- abs(outer(y,y,"-"))
*

*>>
*

*>> in the first place?
*

*>>
*

*>> > #Here is the function I wrote to get half of matrix:
*

*>> >
*

*>> > wk<-function(p){
*

*>> > for (i in 2:p){
*

*>> > ri<-b[i-1,i:p]
*

*>> > return(ri)
*

*>> > }
*

*>> > }
*

*>> > wk(12)
*

*>> > #[1] 0.0 0.1 0.2 0.3 0.4 0.5 0.5 0.5 0.7 0.8 0.8
*

*>>
*

*>> I think you were intending this function to be something like this
*

*>>
*

*>> wk<-function(p){
*

*>> ri <- NULL
*

*>> for (i in 2:p){
*

*>> ri<-c(ri, b[i-1,i:p])
*

*>> }
*

*>> return(ri)
*

*>> }
*

*>>
*

*>> Note that this function will give a different result from upper.tri(),
*

*>> because you are concatenating elements in the *rows* of the matrix,
*

*>> whereas the way matrices are represented in R has consecutive elements
*

*>> running down the columns. I.e. look at
*

*>>
*

*>> > A <- matrix(nrow=2,ncol=2)
*

*>> > A
*

*>> [,1] [,2]
*

*>> [1,] NA NA
*

*>> [2,] NA NA
*

*>> > A[] <- 1:4
*

*>> > A
*

*>> [,1] [,2]
*

*>> [1,] 1 3
*

*>> [2,] 2 4
*

*>>
*

*>> Dan
*

*>>
*

*>> >
*

*>> > As you can see, it is only returning the first line. I would like other
*

*>> > corresponding elements too, to be found in row 2 to 12. Thanks.
*

*>> > --
*

*>> > View this message in context:
*

*>> http://www.nabble.com/help-using-outer-function-tp18914432p18914432.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.
*

Date: Sun, 10 Aug 2008 10:43:04 -0700 (PDT)

Thanks Dan. You did much more than just answer my question.

Sincerely,

Dan Davison wrote:

> > On Sun, Aug 10, 2008 at 06:00:21PM +0100, Dan Davison wrote:

>> On Sun, Aug 10, 2008 at 09:02:59AM -0700, warthog29 wrote:

> > Hmm, I didn't really clarify things there. I meant > b<-as.matrix(b). But anyway, not needed. >

>> you don't need it; b is a matrix already.

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

-- View this message in context: http://www.nabble.com/help-using-outer-function-tp18914432p18915298.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.Received on Sun 10 Aug 2008 - 18:09:08 GMT

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.2.0, at Sun 10 Aug 2008 - 19:33:30 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*