如何在R数据框中查找因子水平的累积和?
累积和主要用于数据的描述性分析,但有时我们可能希望在理解时间序列分析的移动和时计算它们,但这非常罕见。如果我们在R数据框中有一个因子列,那么对所有因子水平一起查找累积和是没有意义的,我们必须为每个水平查找累积和。这可以使用ave函数轻松完成。
示例
考虑下面的数据框:
set.seed(15) x1<-as.factor(sample(LETTERS[1:3],20,replace=TRUE)) x2<-rpois(20,5) df1<-data.frame(x1,x2) df1
输出
x1 x2 1 A 5 2 C 6 3 B 2 4 B 3 5 A 8 6 B 5 7 A 5 8 A 3 9 C 5 10 A 2 11 C 5 12 B 6 13 A 2 14 A 5 15 A 4 16 C 6 17 B 8 18 A 5 19 B 8 20 B 3
查找不同x1值的x2值的累积和:
示例
df1$CumSum_x2_based_on_x1<-ave(x2,x1,FUN=cumsum) df1
输出
x1 x2 CumSum_x2_based_on_x1 1 A 5 5 2 C 6 6 3 B 2 2 4 B 3 5 5 A 8 13 6 B 5 10 7 A 5 18 8 A 3 21 9 C 5 11 10 A 2 23 11 C 5 16 12 B 6 16 13 A 2 25 14 A 5 30 15 A 4 34 16 C 6 22 17 B 8 24 18 A 5 39 19 B 8 32 20 B 3 35
让我们看看另一个例子:
示例
Group<-sample(c("GRP1","GRP2","GRP3","GRP4"),20,replace=TRUE)
Response<-sample(1:10,20,replace=TRUE)
df2<-data.frame(Group,Response)
df2输出
Group Response 1 GRP2 1 2 GRP3 1 3 GRP2 8 4 GRP2 1 5 GRP2 4 6 GRP1 7 7 GRP1 8 8 GRP1 2 9 GRP1 1 10 GRP1 1 11 GRP4 3 12 GRP3 9 13 GRP4 4 14 GRP1 9 15 GRP4 5 16 GRP2 8 17 GRP2 10 18 GRP3 5 19 GRP3 8 20 GRP3 8
查找不同Group值的Response值的累积和
示例
df2$CumSum_of_GroupLevels<-ave(Response,Group,FUN=cumsum) df2
输出
Group Response CumSum_of_GroupLevels 1 GRP2 1 1 2 GRP3 1 1 3 GRP2 8 9 4 GRP2 1 10 5 GRP2 4 14 6 GRP1 7 7 7 GRP1 8 15 8 GRP1 2 17 9 GRP1 1 18 10 GRP1 1 19 11 GRP4 3 3 12 GRP3 9 10 13 GRP4 4 7 14 GRP1 9 28 15 GRP4 5 12 16 GRP2 8 22 17 GRP2 10 32 18 GRP3 5 15 19 GRP3 8 23 20 GRP3 8 31
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP