我正在寻找一个关于如何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)