Try

> x <- read.table(textConnection(
+ "1.2 1
+  1.2 1
+ 1.3 1
+ 1.5 1
+ 1.1 2
+ 1.2 2
+ 9.9 2
+ 0.1 3
+ 1.1 3
+ 1.9 3") )

>  x.min <- tapply(x[,1], x[,2], min)
>  x[x.min[x[,2]]==x[,1],]

      V1 V2
[1,] 1.2  1
[2,] 1.2  1
[3,] 1.1  2
[4,] 0.1  3


2009/10/29 Ista Zahn <istaz...@gmail.com>

> I still don't understand. Please look at the example I provided in my
> last response. What is it that you want that my example does not do?
>
> On Thu, Oct 29, 2009 at 3:08 PM, Waverley @ Palo Alto
> <waverley.paloa...@gmail.com> wrote:
> > The reason %in% does not work is that there are might be values which
> > are not min in other class which are the same as the min of different
> > classes.  In the example I provided before, this situation did not
> > exist.  See the new example:
> >
> >> + 1.2 1
> >> + 1.3 1
> >> + 1.5 1
> >> + 1.1 2
> >> + 1.2 2
> >> + 9.9 2
> >> + 0.1 3
> >> + 1.1 3
> >> + 1.9 3
> >
> > if you are using %in%, then
> > 1.2 2
> > 1.1 3
> > will also show up in the final result.
> >
> >
> > That is why I need those row index of the min value of each class. If
> > I can get those, that would be best.
> > Thanks.
> >
> > On Thu, Oct 29, 2009 at 11:58 AM, Ista Zahn <istaz...@gmail.com> wrote:
> >> Hi,
> >> I guess I don't understand why you think %in% won't work.
> >>
> >>> x <- read.table(textConnection("1.2 1
> >> + 1.2 1
> >> + 1.3 1
> >> + 1.5 1
> >> + 2.1 2
> >> + 2.0 2
> >> + 9.9 2
> >> + 1.4 3
> >> + 1.8 3
> >> + 1.9 3") )
> >>> x <- as.matrix(x)
> >>> x.min <- tapply(x[,1], x[,2], min)
> >>> x[x[,1] %in% x.min,]
> >>> ## all matches
> >>      V1 V2
> >> [1,] 1.2  1
> >> [2,] 1.2  1
> >> [3,] 2.0  2
> >> [4,] 1.4  3
> >>> ## unique matches
> >>> unique(x[x[,1] %in% x.min,])
> >>      V1 V2
> >> [1,] 1.2  1
> >> [2,] 2.0  2
> >> [3,] 1.4  3
> >>
> >> -Ista
> >> On Thu, Oct 29, 2009 at 12:36 PM, Waverley @ Palo Alto
> >> <waverley.paloa...@gmail.com> wrote:
> >>> Thanks.  That works.
> >>>
> >>> However, in my own case, there are more columns of other kinds of
> >>> data.  So to me, it is more important to get the row index of those
> >>> that has the min values of particular column in particular class
> >>> (which is another column).
> >>>
> >>> Can you help more as how to get those row index? One issue is that for
> >>> some class they may share the same min value so that using %in% does
> >>> not work.  My goal is to reduce the original matrix size and get the
> >>> result back in the original matrix format.
> >>>
> >>>
> >>> Thanks.
> >>>
> >>> On Wed, Oct 28, 2009 at 11:55 PM, Ista Zahn <istaz...@gmail.com>
> wrote:
> >>>> There are various ways, including
> >>>>
> >>>> x <- read.table(textConnection("1.2 1
> >>>> + 1.3 1
> >>>> + 1.3 1
> >>>> + 1.5 1
> >>>> + 2.1 2
> >>>> + 2.0 2
> >>>> + 9.9 2
> >>>> + 1.4 3
> >>>> + 1.8 3
> >>>> + 1.9 3") )
> >>>>
> >>>> x <- as.matrix(x)
> >>>>
> >>>> x.min <- cbind(tapply(x[,1], x[,2], min), unique(x[,"V2"]))
> >>>>
> >>>> Most of that is just formatting it in the way you requested. All you
> >>>> need to compute the values is
> >>>>
> >>>> tapply(x[,1], x[,2], min)
> >>>>
> >>>> -Ista
> >>>>
> >>>> On Thu, Oct 29, 2009 at 1:47 AM, Waverley @ Palo Alto
> >>>> <waverley.paloa...@gmail.com> wrote:
> >>>>> Hi,
> >>>>>
> >>>>> I have a matrix, first column is of certain values, second column is
> >>>>> the class labels or a factor.
> >>>>> e.g.
> >>>>>
> >>>>> 1.2 1
> >>>>> 1.3 1
> >>>>> 1.3 1
> >>>>> 1.5 1
> >>>>> 2.1 2
> >>>>> 2.0 2
> >>>>> 9.9 2
> >>>>> 1.4 3
> >>>>> 1.8 3
> >>>>> 1.9 3
> >>>>>
> >>>>> I want to find out what is the min values of column 1 for each
> >>>>> corresponding class (column 2).  For the above example, I want to
> >>>>> return a matrix of
> >>>>> 1.2 1
> >>>>> 2.0 2
> >>>>> 1.3 3
> >>>>>
> >>>>> Can someone suggest how to code for that?  The second column can be
> of
> >>>>> characters.
> >>>>>
> >>>>> Thanks much.
> >>>>>
> >>>>>
> >>>>> --
> >>>>> Waverley @ Palo Alto
> >>>>>
> >>>>> ______________________________________________
> >>>>> 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.
> >>>>>
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> Ista Zahn
> >>>> Graduate student
> >>>> University of Rochester
> >>>> Department of Clinical and Social Psychology
> >>>> http://yourpsyche.org
> >>>>
> >>>
> >>>
> >>>
> >>> --
> >>> Waverley @ Palo Alto
> >>>
> >>
> >>
> >>
> >> --
> >> Ista Zahn
> >> Graduate student
> >> University of Rochester
> >> Department of Clinical and Social Psychology
> >> http://yourpsyche.org
> >>
> >
> >
> >
> > --
> > Waverley @ Palo Alto
> >
>
>
>
> --
> Ista Zahn
> Graduate student
> University of Rochester
> Department of Clinical and Social Psychology
> http://yourpsyche.org
>
> ______________________________________________
> 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.

Reply via email to