[R] hi, i have a problem in R
Steve Lianoglou
mailinglist.honeypot at gmail.com
Thu Aug 6 05:53:11 CEST 2009
Hi Gina,
On Aug 5, 2009, at 11:25 PM, Gina Liao wrote:
> Hi,
> I'm sorry i didn't say clearly.
>
>
>
>> for (i in 1:10){
>
> + print(sample(9,4,replace=T))
>
> + }
> [1] 2 5 5 2
> [1] 6 2 1 5
>
> [1] 9 5 9 7
> [1] 2 6 4 1
> [1] 8 5 4 5
> [1] 6 2 3 7
>
> [1] 6 1 7 3
>
> [1] 9 5 4 7
>
> [1] 6 4 8 5
> [1] 1 5 6 3
>
> I mean when it shows these reults.
> Then, what should I do to show the top 3 numbers with highest
> frequencies for each position.
> It shows ten rows and four lists. But I'd like to calculate the
> highest frequencies in each list.
> For example, in the first list, the highest frequencie is 6.
> Because I have to do that procedure for 100 times, and it's possible
> to calculate by self.
You can't do anything with the data when you're just printing -- store
your numbers in a matrix, and play with the table/max/which.max
functions. If I understand you correctly, you want to find which
number appears the most in each column of your data. If so, this code
should get you close to where you need to be -- use your favorite way
to iterate over the columns of you data.
R> dat <- matrix(sample(1:9, 30, rep=T), 10)
R> dat
[,1] [,2] [,3]
[1,] 1 7 1
[2,] 6 5 2
[3,] 9 6 4
[4,] 5 2 5
[5,] 9 3 1
[6,] 4 7 7
[7,] 5 6 4
[8,] 2 6 5
[9,] 5 1 9
[10,] 7 1 4
R> counts <- table(dat[,1])
R> counts
1 2 4 5 6 7 9
1 1 1 3 1 1 2
R> which.max(counts)
5
4
R> names(which.max(counts))
[1] "5"
R> as.numeric(names(which.max(counts)))
[1] 5
I think that should help,
-steve
--
Steve Lianoglou
Graduate Student: Computational Systems Biology
| Memorial Sloan-Kettering Cancer Center
| Weill Medical College of Cornell University
Contact Info: http://cbio.mskcc.org/~lianos/contact
More information about the R-help
mailing list