Вам следует рассмотреть возможность использования инструментов обработки данных в библиотеке plyr.
library(plyr)
startdate <- ISOdate(2011, 1, 1)
userdata <- data.frame(
date = startdate + rep(1:31, each=3),
userID = 1 + round(9*runif(93)),
x = round(100*runif(93))
)
summary <- ddply(userdata, .(userID), summarize, activedays=length(date))
summary[summary$activedays >= 30, ]
Подробнее о plyr можно узнать на отличном веб-сайте Хэдли: http://had.co.nz/plyr/