我通过玩弄来学习R,我开始认为我在滥用tapply功能.是否有更好的方法可以执行以下某些操作?当然,他们工作,但随着他们变得越来越复杂,我想知道我是否会失去更好的选择.我在寻找一些批评,在这里:
tapply(var1, list(fac1, fac2), mean, na.rm=T)
tapply(var1, fac1, sum, na.rm=T) / tapply(var2, fac1, sum, na.rm=T)
cumsum(tapply(var1, fac1, sum, na.rm=T)) / sum(var1)
Run Code Online (Sandbox Code Playgroud)
更新:这是一些示例数据......
var1 var2 fac1 fac2
1 NA 275.54 10 (266,326]
2 NA 565.89 10 (552,818]
3 NA 815.41 6 (552,818]
4 NA 281.77 6 (266,326]
5 NA 640.24 NA (552,818]
6 NA 78.42 NA [78.4,266]
7 NA 1027.06 NA (818,1.55e+03]
8 NA 355.20 NA (326,552]
9 NA 464.52 NA (326,552]
10 NA 1397.11 10 (818,1.55e+03]
11 NA 229.82 NA …Run Code Online (Sandbox Code Playgroud)