Я хотел бы обобщить или заполнить таблицы без сброса пустых уровней. Интересно, есть ли у кого-нибудь идеи по этому поводу?Резюме/Совокупность в R без уровней снижения
В качестве примера, Вот кадр данных
df1<-data.frame(Method=c(rep("A",3),rep("B",2),rep("C",4)),
Type=c("Fast","Fast","Medium","Fast","Slow","Fast","Medium","Slow","Slow"),
Measure=c(1,1,2,1,3,1,1,2,2))
Два подхода с использованием базы и doBy
пакет.
#base
aggregate(Measure~Method+Type,data=df1,FUN=length)
require(doBy)
summaryBy(Measure~Method+Type,data=df1,FUN=length)
Они оба дают те же результаты, отсортированные по-разному, но проблема в том, что я хотел бы все комбинации метода и типа и отсутствуют меры, вставленные в качестве ВПЛ. Или все уровни обоих моих факторов должны поддерживаться.
df1$Type
df1$Method
Может plyr
есть что-то, но я не знаю, как это работает.
См. [Аналогичный вопрос с data.table] (http://stackoverflow.com/questions/20914284/including-all-permutations-when-using-data-table-by) – BrodieG
Также см. 'Ddply', и это' .drop'. – joran
Как уже сказал @joran, но поскольку вы не знакомы с plyr: 'ddply (df1,. (Method, Type), суммировать, Measure = length (Measure), .drop = F)' –