R中的聚合数据

Joh*_*nny 5 aggregate r

我正在寻找一个关于如何aggregate在R中使用和计算均值的简单例子.

说,我有以下数据框:

A      B
100    85
200    95
300    110
400    105
Run Code Online (Sandbox Code Playgroud)

我想计算一些范围的平均值,结果如下:

RANGE         MEAN
100-200       90
300-400       107.5
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢,cast()或者aggregate()

A5C*_*2T1 14

假设您的数据框名为"x":

aggregate(x$B, list(cut(x$A, breaks=c(0, 200, 400))), mean)
#     Group.1     x
# 1   (0,200]  90.0
# 2 (200,400] 107.5
Run Code Online (Sandbox Code Playgroud)

使用"data.table",您可以执行以下操作:

library(data.table)
as.data.table(x)[, .(RANGE = mean(B)), by = .(MEAN = cut(A, c(0, 200, 400)))]
#         MEAN RANGE
# 1:   (0,200]  90.0
# 2: (200,400] 107.5
Run Code Online (Sandbox Code Playgroud)