R数据帧根据列值有条件地聚合,每季度

R数据帧根据列值有条件地聚合,每季度,r,R,我正在运行以下命令: aggregated_quarterly_realised <- aggregate(merged_dataset$dependent_variable, list(merged_dataset$qy), mean) 我想要的是测试变量(合并的数据集$test)的每季度聚合值(季度在合并的数据集$qy变量中),分别用于因变量的值0、值1和总数。使用数据。表: 代码 dtf = dt[, .(Dep1sum = sum(test[depvar == 1]),

我正在运行以下命令:

aggregated_quarterly_realised <- aggregate(merged_dataset$dependent_variable, list(merged_dataset$qy), mean)

我想要的是测试变量(合并的数据集$test)的每季度聚合值(季度在合并的数据集$qy变量中),分别用于因变量的值0、值1和总数。

使用
数据。表

代码

dtf = dt[, .(Dep1sum = sum(test[depvar == 1]), 
             Dep0sum = sum(test[depvar == 0]),
             Sum = sum(test)), .(qy)]
结果

> dtf
        qy  Dep1sum    Dep0sum        Sum
1: 2008.25 15244705 15597495.4 30842200.4
2: 2008.50        0   800585.8   800585.8
3: 2008.75        0  8029604.4  8029604.4
4: 2009.25  6707123        0.0  6707122.6
5: 2009.50        0   646079.5   646079.5
数据

dt = data.table(
  depvar = c(0, 0, 0, 0, 1, 0, 0, 0, 1, 0),
  qy = c(2008.25, 2008.25, 2008.50, 2008.75, 2009.25, 2009.50, 2008.25, 2008.25, 2008.25, 2008.25),
  test = c(7101273.07, 6855586.59, 800585.78, 8029604.44, 6707122.59, 646079.46, 14598.96, 1303978, 15244705, 322058.74)
)

嗨,请给我们提供一个(例如,一些数据来运行你的代码)以使我们更容易帮助你。嗨@SamuelDiebolt我编辑了我的帖子并添加了一些数据。请让我知道这是否正确。我在中得到以下错误
错误。(Dep1sum=sum(test[depvar==1]),Dep0sum=sum(test[depvar==:找不到函数)。“
是否加载了
数据.table
库?执行
require(data.table)
。然后,通过执行
setDT(merged_dataset)
,确保数据为data.table格式。没问题!
data。table
对于这样的数据争用非常有用。随着数据规模的扩大,它在速度方面也优于其他包()。请参阅介绍性教程。抱歉,这实际上是不对的。总和小于Dep1sum,这本不应该是这样的。。为什么会发生这种情况?您能解决它吗?在您的数据中,它似乎是正确的。奇怪的是,您是对的。我的错!!!抱歉!我得到了
2008年第2季度291159243,7 1127901086 1419060330
,并且感到困惑
dt = data.table(
  depvar = c(0, 0, 0, 0, 1, 0, 0, 0, 1, 0),
  qy = c(2008.25, 2008.25, 2008.50, 2008.75, 2009.25, 2009.50, 2008.25, 2008.25, 2008.25, 2008.25),
  test = c(7101273.07, 6855586.59, 800585.78, 8029604.44, 6707122.59, 646079.46, 14598.96, 1303978, 15244705, 322058.74)
)