Hi,
You can use ?split()
 lst1<-split(DF,DF$ID)
lst1[1:2]
#$`1`
#  ID  drugs month
#1  1 drug x     1
#4  1 drug x     1
#5  1 drug y     2
#6  1 drug z     3
#
#$`2`
 # ID  drugs month
#2  2 drug y     2
#7  2 drug x     1

mean(sapply(lst1,nrow))
#[1] 2.4
#or
library(plyr)
 mean(ddply(DF,.(ID),nrow)[,2])
#[1] 2.4
#or
mean(with(DF,tapply(ID,ID,FUN=length)))
#[1] 2.4
A.K.




________________________________
From: Sarah Jo Sinnott <105405...@umail.ucc.ie>
To: arun <smartpink...@yahoo.com> 
Sent: Friday, May 3, 2013 4:35 PM
Subject: Re: selecting certain rows from data frame



Yes - but if I can count the number of rows for each ID, this equates to number 
of drugs per each ID. So that way I can get a mean #rows(drugs). 

e.g., 

ID 1 = 4 rows (approx=4drugs)
ID2= 2 rows
ID 3 = 3 rows
ID 4 = 2 rows
ID 5 = 1 row

12 rows/5people = 2.4rows/person

that is 2.4 drugs per person. 

Do you think it is possible to isolate the number of rows per unique ID? It 
would be great if you could! I'v etried reorganising my data into wide format - 
but it doesn't work very well, so I'm left with his option really!

Thank you for you help thus far

______________________________________________
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