There's almost always a better way than a loop (although
sometimes it isn't worth the effort to figure it out). This time
it's straightforward:

> apply(c5[, 2:4], 1, function(x)sum(x > 0))
[1] 3 2 1 0 3

Sarah

On Tue, Feb 21, 2012 at 6:04 PM, Valerie Moore <vmoore2...@yahoo.com> wrote:
> Hi,
>
> Is there a short way of doing this?
>
> I have the following table in R:
>
> 12.0        0.5       0.6      0.2      0      0
>
> 12.3        1.2       0.8       0        0      0
>
> 13.1         0         1.2       0        0      0
>
> 10.1         0            0       0       1.3     0
>
> 10.2        1.3        1.2     0.9      0     1.3
>
>
> So I have 5 rows and 6 columns. For each row, I want to count the number of  
> times that the value is greater than 1 (FOR COLUMNS 2 TO 4).
> I have the following R code.
>
> count=numeric()
> for (i in 1:5) {
> count[i]=sum(c5[i,2:4]>0)
> }
>
> The result is
>> count
>   [1] 3 2 1 0 3
>
> Is there a short way of doing this (instead of doing the loop)?
>
> Thank you.
>
>
> -Valerie

-- 
Sarah Goslee
http://www.functionaldiversity.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.

Reply via email to