Не совсем после вашего вопроса, но я думаю, что это то, что вы хотите:
df <- data.frame(read.table(textConnection("
A 2
A 7
B 1
B 3
B 6
C 2")))
library(plyr)
ddply(df, .(V1), nrow)
Существует множество способов сделать это, поэтому вам нужно будет предоставить более подробную информацию о том, что вы 'Если вы хотите получить лучший ответ, попробуйте.
Редактировать
В общем, если у вас есть набор уникальных значений, и вы хотите применить к ним функциюосновываясь на этом наборе, вы можете сделать это с некоторой версией функции apply
.Например, в приведенном выше примере есть несколько различных способов получения среднего значения на основе первого столбца:
ddply(df, .(V1), function(x) data.frame(mean=mean(x[,2])))
do.call("rbind", by(df, df[,1], function(x) data.frame(mean=mean(x[,2]))))
do.call("rbind", lapply(unique(df[,1]), function(a) data.frame(V1=a, mean=mean(df[df[,1]==a,2]))))