bfdddp 发表于 2016-6-15 17:18 
我也遇到了,仔细调试后发现by函数不能将数据框按照各列变量的顺序传送给dstats函数,结果dstats函数接受的 ...
最终发现 by函数按照 因子分类后的数据交给函数处理,如果函数可以识别数据框不同列,如summary函数,最后结果按照数据框各列计算结果。
如果不能识别数据框各列如sum函数,那么将数据强制转化向量处理。及求所有列数据总和。这时如果某些函数如mean在转化时不能正确处理就会产生NA值报错。
aggregate函数与by不同在于它直接把数据框分列后传给函数处理,这样就不易出错。
如果你要各列应用函数建议首选aggregate函数,同时aggregate得到加强可以返回多个值。