Skip to content
Prev 322955 / 398502 Next

selecting certain rows from data frame

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.
Message-ID: <1367613861.46875.YahooMailNeo@web142602.mail.bf1.yahoo.com>
In-Reply-To: <CAFXOXWUZ6XZDyf5w-40663bMvHohD6aeYV0QwzK9orU0f6Y7Xg@mail.gmail.com>