[R] Request help writing a function

Chuck Cleland ccleland at optonline.net
Sun Jun 6 11:01:44 CEST 2004


Greg:
   I think you want to apply the function Gabor suggested to the 
rows of your subsetted dataframe:

mydata <- as.data.frame(matrix(c
              (1, NA, 3, 2,
               2,  2, 2, 2,
               1, NA, 2, 2), byrow = TRUE, ncol = 4))

apply(mydata, 1, function(x){mean(x == 2, na.rm = TRUE)})

         1         2         3
0.3333333 1.0000000 0.6666667

   If you want percentages rather than proportions, just convert 
within the function.

apply(mydata, 1, function(x){mean(x == 2, na.rm = TRUE)*100})

hope this helps,

Chuck Cleland

Greg Blevins wrote:
> Here is some further clarification using a toy example.
> dataframe layout
> 
>                 v1               v2                   v3                v4
> 
> Person1    1                NA                 3                  2
> 
> Person2     2                 2                    2                  2
> 
> Person3     1                NA                  2                  2
> 
> I am looking for the proportion of time each person used a 2 code across the
> variables v1 to v4. For example, using the above data, the answer would look
> as follows:
> 
> Person1     33%
> 
> Person2     100%
> 
> Person3     66%

-- 
Chuck Cleland, Ph.D.
NDRI, Inc.
71 West 23rd Street, 8th floor
New York, NY 10010
tel: (212) 845-4495 (Tu, Th)
tel: (732) 452-1424 (M, W, F)
fax: (917) 438-0894




More information about the R-help mailing list